Patents by Inventor Larry Brenner
Larry Brenner has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).
-
Patent number: 7810093Abstract: In a parallel computing environment comprising a network of SMP nodes each having at least one processor, a parallel-aware co-scheduling method and system for improving the performance and scalability of a dedicated parallel job having synchronizing collective operations. The method and system uses a global co-scheduler and an operating system kernel dispatcher adapted to coordinate interfering system and daemon activities on a node and across nodes to promote intra-node and inter-node overlap of said interfering system and daemon activities as well as intra-node and inter-node overlap of said synchronizing collective operations. In this manner, the impact of random short-lived interruptions, such as timer-decrement processing and periodic daemon activity, on synchronizing collective operations is minimized on large processor-count SPMD bulk-synchronous programming styles.Type: GrantFiled: November 15, 2004Date of Patent: October 5, 2010Assignee: Lawrence Livermore National Security, LLCInventors: Terry R. Jones, Pythagoras C. Watson, William Tuel, Larry Brenner, Patrick Caffrey, Jeffrey Fier
-
Publication number: 20070294489Abstract: A method, system, and computer instructions for atomically updating 64-bit fields in the 32-bit AIX kernel, wherein the underlying hardware's 64-bit capable instructions are used to construct an atomic primitive. If a data request applies to the 32-bit kernel on 64-bit hardware execution environment, a load and reserve instruction sets a reservation for a memory location. The original 64-bit data object is decomposed into two 32-bit halves. A Shift Right Double Word Immediate (SRDI) instruction captures the high-order bits of the 64-bit register. If the store conditional instruction determines that the reservation is not lost, the store conditional instruction stores the result. If the store conditional instruction fails, the process returns to the reserve instruction until the store conditional operation returns a success.Type: ApplicationFiled: August 29, 2007Publication date: December 20, 2007Inventor: Larry Brenner
-
Publication number: 20070067122Abstract: An application implementing a high resolution monotonic system clock is provided. A kernel increments a value called a generation number. The generation number is used to determine what state the high and low resolution time values are in. The kernel next stores a low resolution time value. Then, if a time adjustment is occurring, the kernel updates the high resolution time value by updating the origin date. The kernel then increments the generation number a second time. The providing application receives a request for time from another application. The providing application determines a first value for the generation number and compares a low resolution time value and high resolution time value and determines the maximum value of the two. The providing application then gets a second value for the generation number and compares the second value of the generation number to the first value of the generation number.Type: ApplicationFiled: September 22, 2005Publication date: March 22, 2007Inventor: Larry Brenner
-
Publication number: 20070067143Abstract: Method and system for detecting and reporting an excessive period of interrupt disablement in operating system programming in a data processing system. A method for detecting and reporting an excessive period of disablement in operating system programming in a data processing system includes determining, at a plurality of scheduled times, if an operating system task is running disabled for interrupts, and reporting an excessive disablement if the operating system task runs disabled for interrupts for a predefined number of consecutive scheduled times.Type: ApplicationFiled: September 22, 2005Publication date: March 22, 2007Inventor: Larry Brenner
-
Publication number: 20070061805Abstract: A computer implemented method, a data processing system, and computer usable program code for improving thread posting efficiency in a multiprocessor data processing system are provided. Aspects of the present invention first receive a set of threads from an application. The aspects of the present invention then group the set of threads with a plurality of processors based on a last execution of the set of threads on the plurality of processors to form a plurality of groups. The threads in each group in the plurality of groups are all last executed on a same processor. The aspects of the present invention then wake up the threads in the plurality of groups in any order.Type: ApplicationFiled: September 15, 2005Publication date: March 15, 2007Inventor: Larry Brenner
-
Publication number: 20070055830Abstract: An operating system in a shared processor logical partitioned data processing system is given a target percentage. The hypervisor assigns the target processor percentage to the operating system. The operating system also has a predetermined time slice to allot to threads in a multitasking environment. The operating system adjusts the time slice based on a per-virtual-processor percentage.Type: ApplicationFiled: September 8, 2005Publication date: March 8, 2007Inventor: Larry Brenner
-
Publication number: 20060123423Abstract: A method and system in a multiprocessor data processing system (MDPS) that enable efficient load balancing between a first processor with idle processor cycles in a first MCM (multi-chip module) and a second busy processor in a second MCM, without significant degradation to the thread's execution efficiency when allocated to the idle processor cycles. A load balancing algorithm is provided that supports both stealing and borrowing of threads across MCMs. An idle processor is allowed to “borrow” a thread from a busy processor in another memory domain (i.e., across MCMs). The thread is borrowed for a single dispatch cycle at a time. When the dispatch cycle is completed, the thread is released back to its parent processor. No change in the memory allocation of the borrowed thread occurs during the dispatch cycle.Type: ApplicationFiled: December 7, 2004Publication date: June 8, 2006Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventor: Larry Brenner
-
Publication number: 20060036810Abstract: A system, apparatus and method of reducing cache thrashing in a multi-processor with a shared cache executing a disruptive process (i.e., a thread that has a poor cache affinity or a large cache footprint) are provided. When a thread is dispatched for execution, a table is consulted to determine whether the dispatched thread is a disruptive thread. If so, a system idle process is dispatched to the processor sharing a cache with the processor executing the disruptive thread. Since the system idle process may not use data intensively, cache thrashing may be avoided.Type: ApplicationFiled: August 12, 2004Publication date: February 16, 2006Applicant: International Business Machines CorporationInventors: Jos Accapadi, Larry Brenner, Andrew Dunshea, Dirk Michel
-
Publication number: 20060037017Abstract: A system, apparatus and method of reducing adverse performance impact due to migration of processes from one processor to another in a multi-processor system are provided. When a process is executing, the number of cycles it takes to fetch each instruction (CPI) of the process is stored. After execution of the process, an average CPI is computed and stored in a storage device that is associated with the process. When a run queue of the multi-processor system is empty, a process may be chosen from the run queue that has the most processes awaiting execution to migrate to the empty run queue. The chosen process is the process that has the highest average number of CPIs.Type: ApplicationFiled: August 12, 2004Publication date: February 16, 2006Applicant: International Business Machines CorporationInventors: Jos Accapadi, Larry Brenner, Andrew Dunshea, Dirk Michel
-
Publication number: 20060010297Abstract: A method, system, and computer instructions for atomically updating 64-bit fields in the 32-bit AIX kernel, wherein the underlying hardware's 64-bit capable instructions are used to construct an atomic primitive. If a data request applies to the 32-bit kernel on 64-bit hardware execution environment, a load and reserve instruction sets a reservation for a memory location. The original 64-bit data object is decomposed into two 32-bit halves. A Shift Right Double Word Immediate (SRDI) instruction captures the high-order bits of the 64-bit register. If the store conditional instruction determines that the reservation is not lost, the store conditional instruction stores the result. If the store conditional instruction fails, the process returns to the reserve instruction until the store conditional operation returns a success.Type: ApplicationFiled: July 8, 2004Publication date: January 12, 2006Applicant: International Business Machines CroporationInventor: Larry Brenner
-
Publication number: 20050210472Abstract: A method, computer program product, and a data processing system for queuing threads among a plurality of processors in a multiple processor system having a plurality of multi-processor modules is provided. A first thread to be processed is received and is identified as part of an existing process. A search for an idle processor is performed. The search is restricted to processors of a first multi-processor module associated with the existing process.Type: ApplicationFiled: March 18, 2004Publication date: September 22, 2005Applicant: International Business Machines CorporationInventors: Jos Accapadi, Larry Brenner, Andrew Dunshea, Dirk Michel
-
Publication number: 20050131865Abstract: In a parallel computing environment comprising a network of SMP nodes each having at least one processor, a parallel-aware co-scheduling method and system for improving the performance and scalability of a dedicated parallel job having synchronizing collective operations. The method and system uses a global co-scheduler and an operating system kernel dispatcher adapted to coordinate interfering system and daemon activities on a node and across nodes to promote intra-node and inter-node overlap of said interfering system and daemon activities as well as intra-node and inter-node overlap of said synchronizing collective operations. In this manner, the impact of random short-lived interruptions, such as timer-decrement processing and periodic daemon activity, on synchronizing collective operations is minimized on large processor-count SPMD bulk-synchronous programming styles.Type: ApplicationFiled: November 15, 2004Publication date: June 16, 2005Inventors: Terry Jones, Pythagoras Watson, William Tuel, Larry Brenner, Patrick Caffrey, Jeffrey Fier
-
Publication number: 20050080824Abstract: A system, apparatus and method of enhancing priority boosting of scheduled threads are provided. If, while being executed by a second CPU, a second thread determines that it has to wait for a lock on a shared resource held by a first thread that is scheduled to be executed by a first CPU, the second thread may boost the priority of the first thread by passing its priority to the first thread if its priority is higher than the first thread's priority. Further, to enhance the priority boost of the first thread, the second thread may reschedule the first thread to be processed by the second CPU. By having been rescheduled on the second CPU, the second thread may be dispatched for execution right thereafter.Type: ApplicationFiled: October 9, 2003Publication date: April 14, 2005Applicant: International Business Machines CorporationInventors: Basu Vaidyanathan, Larry Brenner
-
Patent number: 5392415Abstract: A method for assembling swap blocks of virtual pages for transfer between a backing store and physical memory in a data processing system. The method includes segregating all virtual pages resident in physical memory between an active list and an inactive list. Virtual pages are then assigned to the inactive list by groups where each page in a group belongs to a single owning task or object. From a group, virtual pages are assigned to a swap block based upon correlation of most recent use. The swap block may then be paged out in a single operation to a backing store. A list of the group members is kept to permit page in to physical memory upon reference to a member of the swap block.Type: GrantFiled: December 15, 1992Date of Patent: February 21, 1995Assignee: International Business Machines CorporationInventors: Peter R. Badovinatz, Larry Brenner, Jeffrey R. Hedglin, Barry P. Lubart, Patrick O'Rourke, Angelo Pruscino