US20020054051A1 - Parallel programming development environment - Google Patents

Parallel programming development environment Download PDF

Info

Publication number
US20020054051A1
US20020054051A1 US09/222,482 US22248298A US2002054051A1 US 20020054051 A1 US20020054051 A1 US 20020054051A1 US 22248298 A US22248298 A US 22248298A US 2002054051 A1 US2002054051 A1 US 2002054051A1
Authority
US
United States
Prior art keywords
application
computer system
topology
parallel
monitor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
US09/222,482
Other versions
US6433802B1 (en
Inventor
Patrick G. Ladd
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Teradata US Inc
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to US09/222,482 priority Critical patent/US6433802B1/en
Assigned to NCR CORPORATION reassignment NCR CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: LADD, PATRICK G.
Priority to EP99309832A priority patent/EP1026587A3/en
Publication of US20020054051A1 publication Critical patent/US20020054051A1/en
Application granted granted Critical
Publication of US6433802B1 publication Critical patent/US6433802B1/en
Assigned to TERADATA US, INC. reassignment TERADATA US, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: NCR CORPORATION
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming

Definitions

  • This invention relates in general to parallel processor computer systems, and in particular, to a parallel programming development environment used to program parallel processor computer systems.
  • Parallel processor computer systems are frequently comprised of an operating system and arrays of individual computers (i.e., processor nodes), each with their own central processing unit (CPU), memory, and data storage unit. Tasks are executed in parallel by utilizing each processor node.
  • a thread is a stream of instructions executed by the computer on behalf of a task.
  • a task such as an orchestra performing a symphony can be decomposed into many threads which would be the individual musicians, each playing their part.
  • each thread is allocated to a different processor node.
  • Each of these threads is then executed in parallel at their respective separate nodes. For instance, three threads can occupy and execute simultaneously on three different nodes at the same time.
  • the present invention discloses a method, apparatus, and article of manufacture for creating a parallel programming development environment.
  • the environment comprises a graphical user interface, that contains a system screen, an application screen, a code generator, a process distributor, and an applications monitor.
  • the system and application screens are displayed on the monitor and are used to display the topology of the computer system and for selecting portions of the system for use in a parallel application.
  • the code generator receives a user application file from the application screen and generates programming code based on the contents of the user application file.
  • the process distributor distributes the executable code within the topology of the computer system as allocated by the user in the application file.
  • the application monitor monitors the user application file and maintains statistics on the user application file.
  • An object of the present invention is to provide more efficient usage of parallel processor computer systems. Another benefit is higher system availability without undue programing overhead in the application. Still another benefit of the present invention is its ability to provide faster and more cost effective parallel programming development.
  • FIG. 1 is a block diagram that illustrates an exemplary hardware environment that could be used with the present invention
  • FIG. 2 illustrates the components and interrelationship between the components of the development environment of the present invention
  • FIG. 3 is a flowchart that illustrates the general logic of a message or event-driven node performing the steps of the present invention
  • FIG. 4 is a flowchart that illustrates exemplary logic performed by the present invention.
  • the present invention discloses a method, apparatus, and article of manufacture for creating a parallel programing development environment.
  • the environment comprises a graphical user interface, that contains a system screen, an application screen, a code generator, a process distributor, and an applications monitor.
  • the system and application screens are displayed on the monitor and are used to display the topology of the computer system and for selecting portions of the system for use in a parallel application.
  • the code generator receives a user application file from the application screen and generates programming code based on the contents of the user application file.
  • the process distributor distributes the executable code within the topology of the computer system as allocated by the user in the application file.
  • the application monitor monitors the user application file and maintains statistics on the user application file.
  • the present invention provides a Graphical User Interface (GUI) that is used to display and create a graphical representation of the desired parallel programming application.
  • GUI Graphical User Interface
  • the present invention also displays a diagram of the nodes of the system and how they are interconnected, so that programmers can take advantage of the architecture of the system that is being programmed.
  • the present invention allows users to route processes and/or threads to specific nodes, determine the use of shared memory devices, and customize an application prior to generation of computer programming code.
  • the present invention provides a graphical interface to users and offers objects such as Groups, Links, and Processes, e.g., root and children, that can be dragged and dropped, connected, and customized in order to form a graphical representation of the desired parallel application. Additionally, on a system screen, the present invention can show a diagram of the nodes in the system and how they are interconnected e.g., distributed memory, networked, etc. Users can describe how the application should behave in the system in order to take advantage of the architecture shown on the system screen. This activity can entail the determination of process distribution to specific nodes, or how shared memory is to be used. The present invention saves this information and uses the information for code generation and for process distribution when the application is started.
  • objects such as Groups, Links, and Processes, e.g., root and children, that can be dragged and dropped, connected, and customized in order to form a graphical representation of the desired parallel application.
  • the present invention can show a diagram of the nodes in the system and how
  • the user can generate language specific codes for a specific standardized parallel programming paradigm, such as MPI.
  • the present invention can be used to start the application by distributing the processes and signal the start of their execution.
  • the present invention can be used to monitor an application in order to gather statistics, displayed graphically in real-time, for correct operation and performance evaluation.
  • FIG. 1 illustrates an exemplary computer hardware environment that could be used with the present invention.
  • a computer system 100 is comprised of one or more processors or nodes 102 interconnected by a network 104 .
  • Each of the nodes 102 is typically a symmetric multi-processor (SMP) architecture and is comprised of a plurality of microprocessors, random access memory (RAM), read-only memory (ROM), and other components. It is envisioned that attached to the nodes 102 may be one or more fixed and/or removable data storage units (DSUs) 106 and data communications units (DCUs).
  • DSUs data storage units
  • DCUs data communications units
  • Each of the nodes 102 operates under the control of an operating system 110 , such as the UNIXTM operating system. Further, each of the nodes 102 executes one or more computer programs 112 under the control of the operating system 110 .
  • the operating system 110 and the computer programs 112 are tangibly embodied in and/or retrieved from RAM, ROM, and/or one or more other DSUs 106 or DCUs. Further, both the operating system 110 and the computer programs 112 are loaded into RAM for execution by the node 102 .
  • both the operating system 110 and the computer programs 112 comprise instructions which, when read and executed by the node 102 , causes the node 102 to perform the steps necessary to execute the steps or elements of the present invention.
  • a client-server architecture is disclosed. At least one of the nodes 102 provide the connection to client systems operating on workstations 108 . Operators of the system 100 use a workstation 108 or terminal to transmit electrical signals to and from server systems operating on the node 102 in the system 100 , wherein the electrical signals represent commands for performing various functions in the system 100 , such as search and retrieval functions against the databases.
  • the present invention has application to any function or software that can be performed by a system 100 .
  • the workstation 108 usually operates under the control of an operating system 114 .
  • the present invention is usually implemented in one or more Graphical User Interfaces (GUIs) 116 that operate under the control of and in conjunction with the operating system 114 .
  • GUIs Graphical User Interfaces
  • a keyboard 118 For human interface with the workstation 108 , attached to the workstation 108 is a keyboard 118 , a mouse or other pointing device 120 , and a monitor 122 .
  • the GUIs 116 are displayed on monitor 122 and the user can interact with the GUIs 116 by using the keyboard 118 and/or the pointing device 120 to command the workstation 108 to perform certain tasks.
  • the present invention uses the GUI 116 to help resolve the problem associated with tasks that do not easily lend themselves to being divided into parallel processing sub-tasks.
  • Methods which require knowledge of the physical configuration of the system 100 typically present undesirable levels of software complexity and platform dependencies.
  • the present invention minimizes the levels of software complexity by presenting the user with a graphical representation of the system 100 and allowing the user to program the system 100 in a graphical manner. Supporting this global knowledge requires heavy use of the network 104 between the nodes 102 of the system 100 .
  • the GUI 116 comprises instructions and/or data that are embodied in or retrievable from a computer-readable device, medium, or carrier, e.g., the data storage device 106 , a remote device coupled to the workstation 108 via the node 102 , etc. Moreover, these instructions and/or data, when read, executed, and/or interpreted by the workstation 108 cause the workstation 108 to perform the steps necessary to implement and/or use the present invention.
  • the present invention may be implemented as a method, apparatus, or article of manufacture using standard programming and/or engineering techniques to produce software, firmware, hardware, or any combination thereof.
  • article of manufacture (or alternatively, “computer program product”) as used herein is intended to encompass a computer program accessible from any computer-readable device, carrier, or media. Many modifications may be made to this configuration without departing from the scope of the present invention.
  • FIG. 2 illustrates the components and interrelationship between the components of the development environment of the present invention.
  • the present invention comprises a user GUI 116 , which includes application screens 200 and system screens 202 .
  • the user GUI 116 provides an interface for the user to create parallel applications 112 , generate code for the parallel applications 112 , distribute the parallel applications 112 , run the parallel applications 112 , and monitor the progress of the parallel applications 112 .
  • the User GUI 116 is divided into at least two parts.
  • the first part is the application screens 200 .
  • the application screens 200 provide an environment for users to piece together a parallel application using objects that correspond to pieces of the application. Once a user has pieced together the objects using the application screens 200 , the application screens 200 , through the user GUI 116 , pass the user applications 112 to the code generator 204 and process distribution server 206 .
  • the system screens 202 comprise another part of the user GUI 116 , and display current system 100 topology in terms of nodes 102 , network 104 connections (e.g., clustered, MPP, SMP, etc.) and shared memory architectures.
  • the system screens 202 through the user GUI 116 , pass the system 100 topology information to the applications screens 200 for use in parallel application 112 creation.
  • the code generator 204 accepts application 112 information files for application 112 behavior from the application screens 200 and generates language specific code for a particular parallel programming paradigm, such as MPI. Many different computer languages, e.g., C, C++, Fortran, Cobol, etc., along with many different parallel programming paradigms, are supportable by the code generator 204 .
  • the process distribution server 206 distributes process executables to nodes 102 as defined by the system 100 architecture described by the user.
  • the process distribution server 206 also sends processes and applications 112 to process distribution clients 208 on nodes 112 identified in application 112 groups.
  • the process distribution server 206 also signals the process distribution client 208 to execute appropriate processes and/or applications 112 .
  • the system topology 210 updates the graphical representation of the system 100 interconnections and distributed memory layout upon user request.
  • the system 100 information is used to determine the architecture model of the application 112 and allows for determination of the number of parallel processes to use and where to execute them (e.g., which node 102 or workstation 108 ).
  • the application monitor 212 monitors the start, progress, and completion of a parallel application 112 , maintains statistics during the execution of the parallel application 112 , and calculates system 100 performance during and after the execution of application 112 .
  • the application monitor 212 also has a screen within system screens 202 that shows real time activity and statistical updates of an application 112 during execution.
  • FIG. 3 is a flowchart that illustrates the general logic of a message or event-driven node 102 performing the steps of the present invention.
  • operations are performed when transitions are made, based upon the receipt of messages or events, from present or current states to new states.
  • the flowchart begins by waiting at block 300 for an event (e.g., a mouse button click). It should be appreciated that during this time, other operating system tasks, e.g., file, memory, and video tasks, etc., may also be carried out.
  • an event e.g., a mouse button click
  • control passes to block 302 to identify the event. Based upon the event, as well as the current state of the system determined in block 304 , a new state is determined in block 306 .
  • the logic transitions to the new state and performs any actions required for the transition.
  • the current state is set to the previously determined new state, and control returns to block 300 to wait for more input events.
  • FIG. 4 is a flowchart that illustrates exemplary logic performed by the present invention.
  • Block 400 represents the workstation 108 displaying a topology of the distributed computer system 100 on a monitor 122 .
  • Block 402 represents piecing together an application 112 containing at least one process executable using the topology of the distributed computer system 100 .
  • Block 404 represents determining where, within the topology of the distributed computer system 100 , the process executables are executed.
  • Block 406 represents the node 102 distributing the process executables according to the determining step.
  • Block 408 represents the node 102 monitoring execution of the pieced together application 112 and the process executables.
  • the present invention discloses a method, apparatus, and article of manufacture for creating a parallel programming development environment.
  • the environment comprises a graphical user interface that contains a system screen, an application screen, a code generator, a process distributor, and an applications monitor.
  • the system and application screens are displayed on the monitor and are used to display the topology of the computer system and for selecting portions of the system for use in a parallel application.
  • the code generator receives a user application file from the application screen and generates programming code based on the contents of the user application file.
  • the process distributor distributes the executable code within the topology of the computer system as allocated by the user in the application file.
  • the application monitor monitors the user application file and maintains statistics on the user application file.

Abstract

A method, apparatus, and article of manufacture for creating a parallel programming development environment. The environment comprises a graphical user interface, that contains a system screen, an application screen, a code generator, a process distributor, and an applications monitor. The system and application screens are displayed on the monitor and are used to display the topology of the computer system and for selecting portions of the system for use in a parallel application. The code generator receives a user application file from the application screen and generates programming code based on the contents of the user application file. The process distributor, distributes the executable code within the topology of the computer system as allocated by the user in the application file. The application monitor monitors the user application file and maintains statistics on the user application file.

Description

    BACKGROUND OF THE INVENTION
  • 1. Field of the Invention [0001]
  • This invention relates in general to parallel processor computer systems, and in particular, to a parallel programming development environment used to program parallel processor computer systems. [0002]
  • 2. Description of Related Art [0003]
  • Parallel processor computer systems are frequently comprised of an operating system and arrays of individual computers (i.e., processor nodes), each with their own central processing unit (CPU), memory, and data storage unit. Tasks are executed in parallel by utilizing each processor node. [0004]
  • During the execution of a task, a body of work is divided into multiple threads. A thread is a stream of instructions executed by the computer on behalf of a task. As an analogy, a task such as an orchestra performing a symphony can be decomposed into many threads which would be the individual musicians, each playing their part. [0005]
  • Typically, in a parallel processor computer system, each thread is allocated to a different processor node. Each of these threads is then executed in parallel at their respective separate nodes. For instance, three threads can occupy and execute simultaneously on three different nodes at the same time. [0006]
  • Although parallel processing has merits, there are shortcomings. Conventional processing techniques may result in an inefficient use of the available hardware. Industry standard libraries, such as the Message Passing Interface (MPI) have made parallel programming even more difficult because the MPI standard is programming language dependent. This dependency creates problems for computer systems that perform some of their programming tasks in one language and other tasks in another language, because present day parallel programming efforts will then be unable to interact with programming that is written in two different programming languages. This makes parallel programming efforts more costly and more time consuming. [0007]
  • It can be seen, then, that there is a need in the art for a method to develop parallel programming that can be used with multiple computer programming languages. Further, there is a need for a parallel programming development environment that will be lest costly. There is also a need for a parallel programming development environment that is less time consuming. There is also a need in the art for modifications to conventional techniques that exploit the hardware available in parallel processor computer systems. [0008]
  • SUMMARY OF THE INVENTION
  • To overcome the limitations in the prior art described above, and to overcome other limitations that will become apparent upon reading and understanding the present specification, the present invention discloses a method, apparatus, and article of manufacture for creating a parallel programming development environment. The environment comprises a graphical user interface, that contains a system screen, an application screen, a code generator, a process distributor, and an applications monitor. The system and application screens are displayed on the monitor and are used to display the topology of the computer system and for selecting portions of the system for use in a parallel application. The code generator receives a user application file from the application screen and generates programming code based on the contents of the user application file. The process distributor, distributes the executable code within the topology of the computer system as allocated by the user in the application file. The application monitor monitors the user application file and maintains statistics on the user application file. [0009]
  • An object of the present invention is to provide more efficient usage of parallel processor computer systems. Another benefit is higher system availability without undue programing overhead in the application. Still another benefit of the present invention is its ability to provide faster and more cost effective parallel programming development. [0010]
  • These and various other advantages and features of novelty which characterize the invention are pointed out with particularity in the claims annexed hereto and form a part hereof. However, for a better understanding of the invention, its advantages, and the objects obtained by its use, reference should be made to the drawings which form a further part hereof, and to the accompanying detailed description, in which there is illustrated and described specific examples of a method, apparatus, and article of manufacture in accordance with the invention. [0011]
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • Referring now to the drawings in which like reference numbers represent corresponding parts throughout: [0012]
  • FIG. 1 is a block diagram that illustrates an exemplary hardware environment that could be used with the present invention; [0013]
  • FIG. 2 illustrates the components and interrelationship between the components of the development environment of the present invention; [0014]
  • FIG. 3 is a flowchart that illustrates the general logic of a message or event-driven node performing the steps of the present invention; [0015]
  • FIG. 4 is a flowchart that illustrates exemplary logic performed by the present invention. [0016]
  • DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT
  • In the following description of the preferred embodiment, reference is made to the accompanying drawings which form a part hereof, and in which is shown by way of illustration a specific embodiment in which the invention may be practiced. It is to be understood that other embodiments may be utilized and structural changes may be made without departing from the scope of the present invention. [0017]
  • Overview [0018]
  • The present invention discloses a method, apparatus, and article of manufacture for creating a parallel programing development environment. The environment comprises a graphical user interface, that contains a system screen, an application screen, a code generator, a process distributor, and an applications monitor. The system and application screens are displayed on the monitor and are used to display the topology of the computer system and for selecting portions of the system for use in a parallel application. The code generator receives a user application file from the application screen and generates programming code based on the contents of the user application file. The process distributor distributes the executable code within the topology of the computer system as allocated by the user in the application file. The application monitor monitors the user application file and maintains statistics on the user application file. [0019]
  • The present invention provides a Graphical User Interface (GUI) that is used to display and create a graphical representation of the desired parallel programming application. The present invention also displays a diagram of the nodes of the system and how they are interconnected, so that programmers can take advantage of the architecture of the system that is being programmed. The present invention allows users to route processes and/or threads to specific nodes, determine the use of shared memory devices, and customize an application prior to generation of computer programming code. [0020]
  • The present invention provides a graphical interface to users and offers objects such as Groups, Links, and Processes, e.g., root and children, that can be dragged and dropped, connected, and customized in order to form a graphical representation of the desired parallel application. Additionally, on a system screen, the present invention can show a diagram of the nodes in the system and how they are interconnected e.g., distributed memory, networked, etc. Users can describe how the application should behave in the system in order to take advantage of the architecture shown on the system screen. This activity can entail the determination of process distribution to specific nodes, or how shared memory is to be used. The present invention saves this information and uses the information for code generation and for process distribution when the application is started. [0021]
  • When the overall application is described, individual processes are designed using object-oriented software design techniques with the addition of paradigm specific, e.g., MPI objects. A tool incorporating a modeling language can be used, but in order to maintain ease of parallel application programmability a library of paradigm specific objects must be made available. [0022]
  • With the application completely described, the user can generate language specific codes for a specific standardized parallel programming paradigm, such as MPI. The present invention can be used to start the application by distributing the processes and signal the start of their execution. Finally, the present invention can be used to monitor an application in order to gather statistics, displayed graphically in real-time, for correct operation and performance evaluation. [0023]
  • Hardware Environment [0024]
  • FIG. 1 illustrates an exemplary computer hardware environment that could be used with the present invention. In the exemplary computer hardware environment, a [0025] computer system 100 is comprised of one or more processors or nodes 102 interconnected by a network 104. Each of the nodes 102 is typically a symmetric multi-processor (SMP) architecture and is comprised of a plurality of microprocessors, random access memory (RAM), read-only memory (ROM), and other components. It is envisioned that attached to the nodes 102 may be one or more fixed and/or removable data storage units (DSUs) 106 and data communications units (DCUs).
  • Each of the [0026] nodes 102 operates under the control of an operating system 110, such as the UNIX™ operating system. Further, each of the nodes 102 executes one or more computer programs 112 under the control of the operating system 110. Generally, the operating system 110 and the computer programs 112 are tangibly embodied in and/or retrieved from RAM, ROM, and/or one or more other DSUs 106 or DCUs. Further, both the operating system 110 and the computer programs 112 are loaded into RAM for execution by the node 102. In any embodiment, both the operating system 110 and the computer programs 112 comprise instructions which, when read and executed by the node 102, causes the node 102 to perform the steps necessary to execute the steps or elements of the present invention.
  • In the exemplary environment of FIG. 1, a client-server architecture is disclosed. At least one of the [0027] nodes 102 provide the connection to client systems operating on workstations 108. Operators of the system 100 use a workstation 108 or terminal to transmit electrical signals to and from server systems operating on the node 102 in the system 100, wherein the electrical signals represent commands for performing various functions in the system 100, such as search and retrieval functions against the databases. The present invention has application to any function or software that can be performed by a system 100.
  • The [0028] workstation 108 usually operates under the control of an operating system 114. The present invention is usually implemented in one or more Graphical User Interfaces (GUIs) 116 that operate under the control of and in conjunction with the operating system 114.
  • For human interface with the [0029] workstation 108, attached to the workstation 108 is a keyboard 118, a mouse or other pointing device 120, and a monitor 122. The GUIs 116 are displayed on monitor 122 and the user can interact with the GUIs 116 by using the keyboard 118 and/or the pointing device 120 to command the workstation 108 to perform certain tasks.
  • The present invention uses the [0030] GUI 116 to help resolve the problem associated with tasks that do not easily lend themselves to being divided into parallel processing sub-tasks. Methods which require knowledge of the physical configuration of the system 100 typically present undesirable levels of software complexity and platform dependencies. The present invention minimizes the levels of software complexity by presenting the user with a graphical representation of the system 100 and allowing the user to program the system 100 in a graphical manner. Supporting this global knowledge requires heavy use of the network 104 between the nodes 102 of the system 100.
  • Generally, the [0031] GUI 116 comprises instructions and/or data that are embodied in or retrievable from a computer-readable device, medium, or carrier, e.g., the data storage device 106, a remote device coupled to the workstation 108 via the node 102, etc. Moreover, these instructions and/or data, when read, executed, and/or interpreted by the workstation 108 cause the workstation 108 to perform the steps necessary to implement and/or use the present invention.
  • Thus, the present invention may be implemented as a method, apparatus, or article of manufacture using standard programming and/or engineering techniques to produce software, firmware, hardware, or any combination thereof. The term “article of manufacture” (or alternatively, “computer program product”) as used herein is intended to encompass a computer program accessible from any computer-readable device, carrier, or media. Many modifications may be made to this configuration without departing from the scope of the present invention. [0032]
  • Any combination of the above components, or any number of different components, including computer programs, peripherals, and other devices, may be used to implement the present invention, so long as similar functions are performed thereby. [0033]
  • Relationships and Operation [0034]
  • FIG. 2 illustrates the components and interrelationship between the components of the development environment of the present invention. [0035]
  • The present invention comprises a [0036] user GUI 116, which includes application screens 200 and system screens 202. The user GUI 116 provides an interface for the user to create parallel applications 112, generate code for the parallel applications 112, distribute the parallel applications 112, run the parallel applications 112, and monitor the progress of the parallel applications 112.
  • To perform all of the monitoring, running, distribution, creation, and generation tasks, the [0037] User GUI 116 is divided into at least two parts. The first part is the application screens 200. The application screens 200 provide an environment for users to piece together a parallel application using objects that correspond to pieces of the application. Once a user has pieced together the objects using the application screens 200, the application screens 200, through the user GUI 116, pass the user applications 112 to the code generator 204 and process distribution server 206.
  • The system screens [0038] 202 comprise another part of the user GUI 116, and display current system 100 topology in terms of nodes 102, network 104 connections (e.g., clustered, MPP, SMP, etc.) and shared memory architectures. The system screens 202, through the user GUI 116, pass the system 100 topology information to the applications screens 200 for use in parallel application 112 creation.
  • The [0039] code generator 204 accepts application 112 information files for application 112 behavior from the application screens 200 and generates language specific code for a particular parallel programming paradigm, such as MPI. Many different computer languages, e.g., C, C++, Fortran, Cobol, etc., along with many different parallel programming paradigms, are supportable by the code generator 204.
  • The [0040] process distribution server 206 distributes process executables to nodes 102 as defined by the system 100 architecture described by the user. The process distribution server 206 also sends processes and applications 112 to process distribution clients 208 on nodes 112 identified in application 112 groups. The process distribution server 206 also signals the process distribution client 208 to execute appropriate processes and/or applications 112.
  • The [0041] system topology 210 updates the graphical representation of the system 100 interconnections and distributed memory layout upon user request. The system 100 information is used to determine the architecture model of the application 112 and allows for determination of the number of parallel processes to use and where to execute them (e.g., which node 102 or workstation 108).
  • The application monitor [0042] 212 monitors the start, progress, and completion of a parallel application 112, maintains statistics during the execution of the parallel application 112, and calculates system 100 performance during and after the execution of application 112. The application monitor 212 also has a screen within system screens 202 that shows real time activity and statistical updates of an application 112 during execution.
  • Logic of the Management Interface [0043]
  • FIG. 3 is a flowchart that illustrates the general logic of a message or event-driven [0044] node 102 performing the steps of the present invention. In such a computer 102, operations are performed when transitions are made, based upon the receipt of messages or events, from present or current states to new states.
  • Generally, the flowchart begins by waiting at block [0045] 300 for an event (e.g., a mouse button click). It should be appreciated that during this time, other operating system tasks, e.g., file, memory, and video tasks, etc., may also be carried out. When an event occurs, control passes to block 302 to identify the event. Based upon the event, as well as the current state of the system determined in block 304, a new state is determined in block 306. In block 308, the logic transitions to the new state and performs any actions required for the transition. In block 310, the current state is set to the previously determined new state, and control returns to block 300 to wait for more input events.
  • The specific operations that are performed by [0046] block 308 when transitioning between states will vary depending upon the current state and the event. The various operations required to implement and maintain the workstation 108 and GUI 116 of the present invention represent particular events handled by the logic. However, it should be appreciated that these operations represent merely a subset of all of the events handled by the node 102.
  • FIG. 4 is a flowchart that illustrates exemplary logic performed by the present invention. [0047]
  • [0048] Block 400 represents the workstation 108 displaying a topology of the distributed computer system 100 on a monitor 122.
  • [0049] Block 402 represents piecing together an application 112 containing at least one process executable using the topology of the distributed computer system 100.
  • [0050] Block 404 represents determining where, within the topology of the distributed computer system 100, the process executables are executed.
  • [0051] Block 406 represents the node 102 distributing the process executables according to the determining step.
  • [0052] Block 408 represents the node 102 monitoring execution of the pieced together application 112 and the process executables.
  • Conclusion [0053]
  • This concludes the description of the preferred embodiment of the invention. The following describes some alternative embodiments for accomplishing the present invention. For example, any type of computer, such as a mainframe, minicomputer, or personal computer, could be used with the present invention. In addition, any software program utilizing (either partially or entirely) object-oriented programming or a parallel processing schema could benefit from the present invention. [0054]
  • In summary, the present invention discloses a method, apparatus, and article of manufacture for creating a parallel programming development environment. The environment comprises a graphical user interface that contains a system screen, an application screen, a code generator, a process distributor, and an applications monitor. The system and application screens are displayed on the monitor and are used to display the topology of the computer system and for selecting portions of the system for use in a parallel application. The code generator receives a user application file from the application screen and generates programming code based on the contents of the user application file. The process distributor, distributes the executable code within the topology of the computer system as allocated by the user in the application file. The application monitor monitors the user application file and maintains statistics on the user application file. [0055]
  • The foregoing description of the preferred embodiment of the invention has been presented for the purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise form disclosed. Many modifications and variations are possible in light of the above teaching. It is intended that the scope of the invention be limited not by this detailed description, but rather by the claims appended hereto. [0056]

Claims (9)

What is claimed is:
1. A graphical user interface for a parallel programming development environment on a computer system, comprising:
a system screen, displayed on a monitor attached to the computer system, for displaying a topology of the computer system;
an application screen, displayed on the monitor attached to the computer system, for receiving the topology of the computer system and for piecing together a parallel application, the parallel application including at least one process executable;
a code generator, for receiving the pieced together parallel application from the application screen and for generating programming code;
a process distributor, for distributing at least one process executable within the topology of the computer system; and
an application monitor, for monitoring the pieced together application.
2. The graphical user interface of claim 1, wherein the application monitor maintains statistics on an execution of the pieced together application.
3. The graphical user interface of claim 1, wherein the application monitor calculates performance statistics on an execution of the user application file.
4. The method of claim 1, wherein the application screen pieces together the parallel application using at least one object, wherein each object corresponds to a piece of the application.
5. The method of claim 1, wherein the code generator generates code for a particular parallel programming paradigm, such as MPI.
6. The method of claim 1, wherein the code generator generates language specific code.
7. The method of claim 1, wherein the process distributor distributes the process executable to a node of the computer system.
8. A method for developing parallel programming on a distributed computer system, comprising the steps of:
displaying a topology of the distributed computer system on a monitor;
piecing together an application containing at least one process executable using the topology of the distributed computer system;
determining where, within the topology of the distributed computer system, the process executables are executed;
distributing the process executables according to the determining step; and
monitoring execution of the pieced together application and the process executables.
9. A program storage device, readable by a computer, tangibly embodying one or more programs of instructions executable by the computer to perform method steps of developing parallel programming on a distributed computer system, comprising the steps of:
displaying a topology of the distributed computer system on a monitor;
piecing together an application containing at least one process executable using the topology of the distributed computer system;
determining where, within the topology of the distributed computer system, the process executables are executed;
distributing the process executables according to the determining step; and
monitoring execution of the pieced together application and the process executables.
US09/222,482 1998-12-29 1998-12-29 Parallel programming development environment Expired - Fee Related US6433802B1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US09/222,482 US6433802B1 (en) 1998-12-29 1998-12-29 Parallel programming development environment
EP99309832A EP1026587A3 (en) 1998-12-29 1999-12-07 Parallel programming development environment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US09/222,482 US6433802B1 (en) 1998-12-29 1998-12-29 Parallel programming development environment

Publications (2)

Publication Number Publication Date
US20020054051A1 true US20020054051A1 (en) 2002-05-09
US6433802B1 US6433802B1 (en) 2002-08-13

Family

ID=22832402

Family Applications (1)

Application Number Title Priority Date Filing Date
US09/222,482 Expired - Fee Related US6433802B1 (en) 1998-12-29 1998-12-29 Parallel programming development environment

Country Status (2)

Country Link
US (1) US6433802B1 (en)
EP (1) EP1026587A3 (en)

Cited By (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040216044A1 (en) * 2001-07-26 2004-10-28 Maurice Martin Systems and methods for a programming environment for a simulation of a computer application
US20080022079A1 (en) * 2006-07-24 2008-01-24 Archer Charles J Executing an allgather operation with an alltoallv operation in a parallel computer
US20080301683A1 (en) * 2007-05-29 2008-12-04 Archer Charles J Performing an Allreduce Operation Using Shared Memory
US20090064115A1 (en) * 2007-09-05 2009-03-05 Sheynin Yuriy E Enabling graphical notation for parallel programming
US20090245134A1 (en) * 2008-04-01 2009-10-01 International Business Machines Corporation Broadcasting A Message In A Parallel Computer
US20090292905A1 (en) * 2008-05-21 2009-11-26 International Business Machines Corporation Performing An Allreduce Operation On A Plurality Of Compute Nodes Of A Parallel Computer
US20090307467A1 (en) * 2008-05-21 2009-12-10 International Business Machines Corporation Performing An Allreduce Operation On A Plurality Of Compute Nodes Of A Parallel Computer
US20100017714A1 (en) * 2008-07-16 2010-01-21 Anjili Agarwal Web based collaborative multimedia event planning, hosting and deployment system and web based personal multimedia portable system
US20100017420A1 (en) * 2008-07-21 2010-01-21 International Business Machines Corporation Performing An All-To-All Data Exchange On A Plurality Of Data Buffers By Performing Swap Operations
US20100274997A1 (en) * 2007-05-29 2010-10-28 Archer Charles J Executing a Gather Operation on a Parallel Computer
US20110238950A1 (en) * 2010-03-29 2011-09-29 International Business Machines Corporation Performing A Scatterv Operation On A Hierarchical Tree Network Optimized For Collective Operations
US8122228B2 (en) 2008-03-24 2012-02-21 International Business Machines Corporation Broadcasting collective operation contributions throughout a parallel computer
US20120144400A1 (en) * 2010-12-03 2012-06-07 International Business Machines Corporation Data Communications In A Parallel Active Messaging Interface Of A Parallel Computer
US8332460B2 (en) 2010-04-14 2012-12-11 International Business Machines Corporation Performing a local reduction operation on a parallel computer
US8346883B2 (en) 2010-05-19 2013-01-01 International Business Machines Corporation Effecting hardware acceleration of broadcast operations in a parallel computer
US8484440B2 (en) 2008-05-21 2013-07-09 International Business Machines Corporation Performing an allreduce operation on a plurality of compute nodes of a parallel computer
US8489859B2 (en) 2010-05-28 2013-07-16 International Business Machines Corporation Performing a deterministic reduction operation in a compute node organized into a branched tree topology
US8528004B2 (en) 2011-11-07 2013-09-03 International Business Machines Corporation Internode data communications in a parallel computer
US8527672B2 (en) 2010-11-05 2013-09-03 International Business Machines Corporation Fencing direct memory access data transfers in a parallel active messaging interface of a parallel computer
US8566841B2 (en) 2010-11-10 2013-10-22 International Business Machines Corporation Processing communications events in parallel active messaging interface by awakening thread from wait state
US8572629B2 (en) 2010-12-09 2013-10-29 International Business Machines Corporation Data communications in a parallel active messaging interface of a parallel computer
US8584141B2 (en) 2011-01-17 2013-11-12 International Business Machines Corporation Data communications in a parallel active messaging interface of a parallel computer
US8627334B2 (en) 2011-11-07 2014-01-07 International Business Machines Corporation Intranode data communications in a parallel computer
US8635247B1 (en) * 2006-04-28 2014-01-21 Netapp, Inc. Namespace and storage management application infrastructure for use in management of resources in a storage system environment
US8650262B2 (en) 2010-12-09 2014-02-11 International Business Machines Corporation Endpoint-based parallel data processing in a parallel active messaging interface of a parallel computer
US8732725B2 (en) 2011-11-09 2014-05-20 International Business Machines Corporation Managing internode data communications for an uninitialized process in a parallel computer
US8732229B2 (en) 2011-01-06 2014-05-20 International Business Machines Corporation Completion processing for data communications instructions
US8751595B2 (en) 2011-01-06 2014-06-10 International Business Machines Corporation Completion processing for data communications instructions
US8756612B2 (en) 2010-09-14 2014-06-17 International Business Machines Corporation Send-side matching of data communications messages
US8825983B2 (en) 2011-02-15 2014-09-02 International Business Machines Corporation Data communications in a parallel active messaging interface of a parallel computer
US8886916B2 (en) 2011-01-17 2014-11-11 International Business Machines Corporation Endpoint-based parallel data processing with non-blocking collective instructions in a parallel active messaging interface of a parallel computer
US8893083B2 (en) 2011-08-09 2014-11-18 International Business Machines Coporation Collective operation protocol selection in a parallel computer
US8910178B2 (en) 2011-08-10 2014-12-09 International Business Machines Corporation Performing a global barrier operation in a parallel computer
US8909716B2 (en) 2010-09-28 2014-12-09 International Business Machines Corporation Administering truncated receive functions in a parallel messaging interface
US8949577B2 (en) 2010-05-28 2015-02-03 International Business Machines Corporation Performing a deterministic reduction operation in a parallel computer
US8954870B2 (en) 2010-10-08 2015-02-10 Irise System and method for extending a visualization platform
US9047150B2 (en) 2010-11-05 2015-06-02 International Business Machines Corporation Fencing data transfers in a parallel active messaging interface of a parallel computer
US9069631B2 (en) 2010-11-05 2015-06-30 International Business Machines Corporation Fencing data transfers in a parallel active messaging interface of a parallel computer
US9075759B2 (en) 2010-11-05 2015-07-07 International Business Machines Corporation Fencing network direct memory access data transfers in a parallel active messaging interface of a parallel computer
US9189447B2 (en) 2010-12-03 2015-11-17 International Business Machines Corporation Data communications for a collective operation in a parallel active messaging interface of a parallel computer
US9424087B2 (en) 2010-04-29 2016-08-23 International Business Machines Corporation Optimizing collective operations
US9495135B2 (en) 2012-02-09 2016-11-15 International Business Machines Corporation Developing collective operations for a parallel computer
US9569398B2 (en) 2010-09-28 2017-02-14 International Business Machines Corporation Routing data communications packets in a parallel computer

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7131070B1 (en) * 1999-05-13 2006-10-31 Ricoh Company, Ltd. Application unit monitoring and reporting system and method
US6658448B1 (en) * 1999-10-21 2003-12-02 Unisys Corporation System and method for assigning processes to specific CPU's to increase scalability and performance of operating systems
JP2001243492A (en) * 2000-02-29 2001-09-07 Fuji Photo Film Co Ltd Script generating device and script generating program storage medium
US7176914B2 (en) * 2002-05-16 2007-02-13 Hewlett-Packard Development Company, L.P. System and method for directing the flow of data and instructions into at least one functional unit
EP1514183A2 (en) * 2002-06-20 2005-03-16 BRITISH TELECOMMUNICATIONS public limited company Distributed computer
WO2005008414A2 (en) 2003-07-11 2005-01-27 Computer Associates Think, Inc. Method and apparatus for parallel action processing
WO2006087728A1 (en) * 2005-02-15 2006-08-24 Codito Technologies System for creating parallel applications
EP1729213A1 (en) 2005-05-30 2006-12-06 Honda Research Institute Europe GmbH Development of parallel/distributed applications
CN103530187B (en) 2006-03-27 2017-01-18 相干逻辑公司 Programming for a multi-processor system
US7861222B2 (en) * 2007-06-13 2010-12-28 Microsoft Corporation Discoscript: a simplified distributed computing scripting language
US9489183B2 (en) 2010-10-12 2016-11-08 Microsoft Technology Licensing, Llc Tile communication operator
EP2628090B1 (en) 2010-10-15 2018-05-30 Coherent Logix Incorporated Disabling communication in a multiprocessor system
US9430204B2 (en) 2010-11-19 2016-08-30 Microsoft Technology Licensing, Llc Read-only communication operator
US9507568B2 (en) 2010-12-09 2016-11-29 Microsoft Technology Licensing, Llc Nested communication operator
KR101803303B1 (en) 2010-12-21 2017-12-29 삼성전자주식회사 Method for multimedia architecture pattern determination, method and apparatus for transformation from single-core based architecture to multi-core based architecture and
US9395957B2 (en) 2010-12-22 2016-07-19 Microsoft Technology Licensing, Llc Agile communication operator
US8713039B2 (en) * 2010-12-23 2014-04-29 Microsoft Corporation Co-map communication operator
US10198511B1 (en) 2014-08-20 2019-02-05 Vmware, Inc. Datacenter search query interpretation system
US9923782B1 (en) 2014-08-20 2018-03-20 Vmware, Inc. Computer network virtual entity pathway visualization system
US9886445B1 (en) 2014-08-20 2018-02-06 Vmware, Inc. Datacenter entity information system
US9767197B1 (en) * 2014-08-20 2017-09-19 Vmware, Inc. Datacenter operations using search and analytics
US10567238B1 (en) 2014-08-20 2020-02-18 Vmware, Inc. Server system ring topology user interface system
US10163170B2 (en) * 2015-08-19 2018-12-25 Sap Se Method and system for designing a product configuration
KR101906823B1 (en) 2016-03-07 2018-12-05 주식회사 럭스로보 Multi-module compilation system, multi-module compilation method, and non-transitory computer-readable storage medium

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5276789A (en) 1990-05-14 1994-01-04 Hewlett-Packard Co. Graphic display of network topology
US5226120A (en) * 1990-05-21 1993-07-06 Synoptics Communications, Inc. Apparatus and method of monitoring the status of a local area network
US5237691A (en) * 1990-08-01 1993-08-17 At&T Bell Laboratories Method and apparatus for automatically generating parallel programs from user-specified block diagrams
US5295244A (en) 1990-09-17 1994-03-15 Cabletron Systems, Inc. Network management system using interconnected hierarchies to represent different network dimensions in multiple display views
CA2078315A1 (en) * 1991-09-20 1993-03-21 Christopher L. Reeve Parallel processing apparatus and method for utilizing tiling
US5852449A (en) * 1992-01-27 1998-12-22 Scientific And Engineering Software Apparatus for and method of displaying running of modeled system designs
JP3166015B2 (en) * 1992-07-16 2001-05-14 株式会社豊田中央研究所 Force conversion element and pressure detection circuit using the same
US5877764A (en) * 1992-10-23 1999-03-02 International Business Machines Corporation Graphical user interface for managing text i/o between a user and a parallel program
US5768594A (en) * 1995-07-14 1998-06-16 Lucent Technologies Inc. Methods and means for scheduling parallel processors
US5948055A (en) * 1996-08-29 1999-09-07 Hewlett-Packard Company Distributed internet monitoring system and method
US6057839A (en) * 1996-11-26 2000-05-02 International Business Machines Corporation Visualization tool for graphically displaying trace data produced by a parallel processing computer
US5999729A (en) * 1997-03-06 1999-12-07 Continuum Software, Inc. System and method for developing computer programs for execution on parallel processing systems
US6041347A (en) * 1997-10-24 2000-03-21 Unified Access Communications Computer system and computer-implemented process for simultaneous configuration and monitoring of a computer network
US6106575A (en) * 1998-05-13 2000-08-22 Microsoft Corporation Nested parallel language preprocessor for converting parallel language programs into sequential code
US6108702A (en) * 1998-12-02 2000-08-22 Micromuse, Inc. Method and apparatus for determining accurate topology features of a network

Cited By (82)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7788647B2 (en) 2001-07-26 2010-08-31 Irise Systems and methods for collaborative programming of simulations of computer programs
US20040221256A1 (en) * 2001-07-26 2004-11-04 Maurice Martin Systems and methods for collaborative programming of simulations of computer programs
US7349837B2 (en) * 2001-07-26 2008-03-25 Irise Systems and methods for a programming environment for a simulation of a computer application
US7861158B2 (en) 2001-07-26 2010-12-28 Irise System and process for gathering, recording and validating requirements for computer applications
US20040216044A1 (en) * 2001-07-26 2004-10-28 Maurice Martin Systems and methods for a programming environment for a simulation of a computer application
US9361069B2 (en) 2001-07-26 2016-06-07 Irise Systems and methods for defining a simulated interactive web page
US20070168931A1 (en) * 2001-07-26 2007-07-19 Irise Systems and methods for defining a simulated interactive web page
US8635247B1 (en) * 2006-04-28 2014-01-21 Netapp, Inc. Namespace and storage management application infrastructure for use in management of resources in a storage system environment
US20080022079A1 (en) * 2006-07-24 2008-01-24 Archer Charles J Executing an allgather operation with an alltoallv operation in a parallel computer
US8140826B2 (en) 2007-05-29 2012-03-20 International Business Machines Corporation Executing a gather operation on a parallel computer
US8161480B2 (en) 2007-05-29 2012-04-17 International Business Machines Corporation Performing an allreduce operation using shared memory
US20100274997A1 (en) * 2007-05-29 2010-10-28 Archer Charles J Executing a Gather Operation on a Parallel Computer
US20080301683A1 (en) * 2007-05-29 2008-12-04 Archer Charles J Performing an Allreduce Operation Using Shared Memory
US20090064115A1 (en) * 2007-09-05 2009-03-05 Sheynin Yuriy E Enabling graphical notation for parallel programming
US8127283B2 (en) * 2007-09-05 2012-02-28 Intel Corporation Enabling graphical notation for parallel programming
US8122228B2 (en) 2008-03-24 2012-02-21 International Business Machines Corporation Broadcasting collective operation contributions throughout a parallel computer
US20090245134A1 (en) * 2008-04-01 2009-10-01 International Business Machines Corporation Broadcasting A Message In A Parallel Computer
US8422402B2 (en) 2008-04-01 2013-04-16 International Business Machines Corporation Broadcasting a message in a parallel computer
US8891408B2 (en) 2008-04-01 2014-11-18 International Business Machines Corporation Broadcasting a message in a parallel computer
US20090307467A1 (en) * 2008-05-21 2009-12-10 International Business Machines Corporation Performing An Allreduce Operation On A Plurality Of Compute Nodes Of A Parallel Computer
US8161268B2 (en) 2008-05-21 2012-04-17 International Business Machines Corporation Performing an allreduce operation on a plurality of compute nodes of a parallel computer
US8375197B2 (en) 2008-05-21 2013-02-12 International Business Machines Corporation Performing an allreduce operation on a plurality of compute nodes of a parallel computer
US8484440B2 (en) 2008-05-21 2013-07-09 International Business Machines Corporation Performing an allreduce operation on a plurality of compute nodes of a parallel computer
US20090292905A1 (en) * 2008-05-21 2009-11-26 International Business Machines Corporation Performing An Allreduce Operation On A Plurality Of Compute Nodes Of A Parallel Computer
US20100017714A1 (en) * 2008-07-16 2010-01-21 Anjili Agarwal Web based collaborative multimedia event planning, hosting and deployment system and web based personal multimedia portable system
US8281053B2 (en) 2008-07-21 2012-10-02 International Business Machines Corporation Performing an all-to-all data exchange on a plurality of data buffers by performing swap operations
US20100017420A1 (en) * 2008-07-21 2010-01-21 International Business Machines Corporation Performing An All-To-All Data Exchange On A Plurality Of Data Buffers By Performing Swap Operations
US8565089B2 (en) 2010-03-29 2013-10-22 International Business Machines Corporation Performing a scatterv operation on a hierarchical tree network optimized for collective operations
US20110238950A1 (en) * 2010-03-29 2011-09-29 International Business Machines Corporation Performing A Scatterv Operation On A Hierarchical Tree Network Optimized For Collective Operations
US8332460B2 (en) 2010-04-14 2012-12-11 International Business Machines Corporation Performing a local reduction operation on a parallel computer
US8458244B2 (en) 2010-04-14 2013-06-04 International Business Machines Corporation Performing a local reduction operation on a parallel computer
US9424087B2 (en) 2010-04-29 2016-08-23 International Business Machines Corporation Optimizing collective operations
US8346883B2 (en) 2010-05-19 2013-01-01 International Business Machines Corporation Effecting hardware acceleration of broadcast operations in a parallel computer
US8949577B2 (en) 2010-05-28 2015-02-03 International Business Machines Corporation Performing a deterministic reduction operation in a parallel computer
US8966224B2 (en) 2010-05-28 2015-02-24 International Business Machines Corporation Performing a deterministic reduction operation in a parallel computer
US8489859B2 (en) 2010-05-28 2013-07-16 International Business Machines Corporation Performing a deterministic reduction operation in a compute node organized into a branched tree topology
US8776081B2 (en) 2010-09-14 2014-07-08 International Business Machines Corporation Send-side matching of data communications messages
US8756612B2 (en) 2010-09-14 2014-06-17 International Business Machines Corporation Send-side matching of data communications messages
US8909716B2 (en) 2010-09-28 2014-12-09 International Business Machines Corporation Administering truncated receive functions in a parallel messaging interface
US9569399B2 (en) 2010-09-28 2017-02-14 International Business Machines Corporation Routing data communications packets in a parallel computer
US9569398B2 (en) 2010-09-28 2017-02-14 International Business Machines Corporation Routing data communications packets in a parallel computer
US9465527B2 (en) 2010-10-08 2016-10-11 Irise System and method for extending a visualization platform
US9946518B2 (en) 2010-10-08 2018-04-17 Irise System and method for extending a visualization platform
US8954870B2 (en) 2010-10-08 2015-02-10 Irise System and method for extending a visualization platform
US9047150B2 (en) 2010-11-05 2015-06-02 International Business Machines Corporation Fencing data transfers in a parallel active messaging interface of a parallel computer
US8650338B2 (en) 2010-11-05 2014-02-11 International Business Machines Corporation Fencing direct memory access data transfers in a parallel active messaging interface of a parallel computer
US9069631B2 (en) 2010-11-05 2015-06-30 International Business Machines Corporation Fencing data transfers in a parallel active messaging interface of a parallel computer
US9075759B2 (en) 2010-11-05 2015-07-07 International Business Machines Corporation Fencing network direct memory access data transfers in a parallel active messaging interface of a parallel computer
US8527672B2 (en) 2010-11-05 2013-09-03 International Business Machines Corporation Fencing direct memory access data transfers in a parallel active messaging interface of a parallel computer
US9052974B2 (en) 2010-11-05 2015-06-09 International Business Machines Corporation Fencing data transfers in a parallel active messaging interface of a parallel computer
US9081739B2 (en) 2010-11-05 2015-07-14 International Business Machines Corporation Fencing network direct memory access data transfers in a parallel active messaging interface of a parallel computer
US9104512B2 (en) 2010-11-05 2015-08-11 International Business Machines Corporation Fencing data transfers in a parallel active messaging interface of a parallel computer
US9286145B2 (en) 2010-11-10 2016-03-15 International Business Machines Corporation Processing data communications events by awakening threads in parallel active messaging interface of a parallel computer
US8566841B2 (en) 2010-11-10 2013-10-22 International Business Machines Corporation Processing communications events in parallel active messaging interface by awakening thread from wait state
US8789067B2 (en) 2010-12-03 2014-07-22 International Business Machines Corporation Data communications in a parallel active messaging interface of a parallel computer
US8484658B2 (en) * 2010-12-03 2013-07-09 International Business Machines Corporation Data communications in a parallel active messaging interface of a parallel computer
US9189447B2 (en) 2010-12-03 2015-11-17 International Business Machines Corporation Data communications for a collective operation in a parallel active messaging interface of a parallel computer
US20120144400A1 (en) * 2010-12-03 2012-06-07 International Business Machines Corporation Data Communications In A Parallel Active Messaging Interface Of A Parallel Computer
US8572629B2 (en) 2010-12-09 2013-10-29 International Business Machines Corporation Data communications in a parallel active messaging interface of a parallel computer
US8804488B2 (en) 2010-12-09 2014-08-12 International Business Machines Corporation Endpoint-based parallel data processing in a parallel active messaging interface of a parallel computer
US8650580B2 (en) 2010-12-09 2014-02-11 International Business Machines Corporation Data communications in a parallel active messaging interface of a parallel computer
US8650262B2 (en) 2010-12-09 2014-02-11 International Business Machines Corporation Endpoint-based parallel data processing in a parallel active messaging interface of a parallel computer
US8775531B2 (en) 2011-01-06 2014-07-08 International Business Machines Corporation Completion processing for data communications instructions
US8751595B2 (en) 2011-01-06 2014-06-10 International Business Machines Corporation Completion processing for data communications instructions
US8745123B2 (en) 2011-01-06 2014-06-03 International Business Machines Corporation Completion processing for data communications instructions
US8732229B2 (en) 2011-01-06 2014-05-20 International Business Machines Corporation Completion processing for data communications instructions
US8584141B2 (en) 2011-01-17 2013-11-12 International Business Machines Corporation Data communications in a parallel active messaging interface of a parallel computer
US8892850B2 (en) 2011-01-17 2014-11-18 International Business Machines Corporation Endpoint-based parallel data processing with non-blocking collective instructions in a parallel active messaging interface of a parallel computer
US8886916B2 (en) 2011-01-17 2014-11-11 International Business Machines Corporation Endpoint-based parallel data processing with non-blocking collective instructions in a parallel active messaging interface of a parallel computer
US8838933B2 (en) 2011-02-15 2014-09-16 International Business Machines Corporation Data communications in a parallel active messaging interface of a parallel computer
US8825983B2 (en) 2011-02-15 2014-09-02 International Business Machines Corporation Data communications in a parallel active messaging interface of a parallel computer
US8893083B2 (en) 2011-08-09 2014-11-18 International Business Machines Coporation Collective operation protocol selection in a parallel computer
US9047091B2 (en) 2011-08-09 2015-06-02 International Business Machines Corporation Collective operation protocol selection in a parallel computer
US8910178B2 (en) 2011-08-10 2014-12-09 International Business Machines Corporation Performing a global barrier operation in a parallel computer
US9459934B2 (en) 2011-08-10 2016-10-04 International Business Machines Corporation Improving efficiency of a global barrier operation in a parallel computer
US8528004B2 (en) 2011-11-07 2013-09-03 International Business Machines Corporation Internode data communications in a parallel computer
US8627334B2 (en) 2011-11-07 2014-01-07 International Business Machines Corporation Intranode data communications in a parallel computer
US8650581B2 (en) 2011-11-07 2014-02-11 International Business Machines Corporation Internode data communications in a parallel computer
US8732726B2 (en) 2011-11-09 2014-05-20 International Business Machines Corporation Managing internode data communications for an uninitialized process in a parallel computer
US8732725B2 (en) 2011-11-09 2014-05-20 International Business Machines Corporation Managing internode data communications for an uninitialized process in a parallel computer
US9495135B2 (en) 2012-02-09 2016-11-15 International Business Machines Corporation Developing collective operations for a parallel computer
US9501265B2 (en) 2012-02-09 2016-11-22 International Business Machines Corporation Developing collective operations for a parallel computer

Also Published As

Publication number Publication date
EP1026587A3 (en) 2003-11-19
EP1026587A2 (en) 2000-08-09
US6433802B1 (en) 2002-08-13

Similar Documents

Publication Publication Date Title
US6433802B1 (en) Parallel programming development environment
US5442791A (en) Integrated remote execution system for a heterogenous computer network environment
US7174381B2 (en) Parallel computing system, method and architecture
US7159217B2 (en) Mechanism for managing parallel execution of processes in a distributed computing environment
US7299466B2 (en) Mechanism for managing execution environments for aggregated processes
US7117500B2 (en) Mechanism for managing execution of interdependent aggregated processes
US5602729A (en) Method and apparatus for monitoring and controlling multiprocessor digital data processing systems
EP0817035A2 (en) Visual composition tool for constructing application programs using distributed objects on a distributed object network
JPH06214615A (en) Case base knowledge source for artificial software shell
Moreau et al. Object-oriented graphical information systems: Research plan and evaluation metrics
Mahon et al. Cooperative design in grid services
Mato GAUDI-Architecture design document
Rossant et al. Playdoh: a lightweight Python library for distributed computing and optimisation
Lastovetsky Parallel testing of distributed software
Ramackers et al. First and second order dynamics in information systems
US20040098703A1 (en) Integration of multiple software tools under a single site
Oquendo et al. A meta-CASE environment for software process-centred CASE environments
Hellinckx et al. The CoBRA grid: a highly configurable lightweight grid
Liu et al. Mapping component specifications to Enterprise JavaBeans implementations
Liu et al. Study on template for parallel computing in visual parallel programming platform
Bekaert et al. Non-determinism in conceptual models
Yoder et al. A software architecture for collaborative development and solution of MDO problems
Hellinckx et al. Grid-user driven grid research, the CoBRA grid
Sadykova et al. PAPERS IN ENGLISH
Liu et al. Modelling dynamic distributed system structures in PARSE

Legal Events

Date Code Title Description
AS Assignment

Owner name: NCR CORPORATION, OHIO

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:LADD, PATRICK G.;REEL/FRAME:009858/0213

Effective date: 19990319

CC Certificate of correction
FPAY Fee payment

Year of fee payment: 4

AS Assignment

Owner name: TERADATA US, INC., OHIO

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:NCR CORPORATION;REEL/FRAME:020540/0786

Effective date: 20070924

FEPP Fee payment procedure

Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

FPAY Fee payment

Year of fee payment: 8

REMI Maintenance fee reminder mailed
LAPS Lapse for failure to pay maintenance fees
STCH Information on status: patent discontinuation

Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362

FP Lapsed due to failure to pay maintenance fee

Effective date: 20140813