The Pieces to the P2P/GRID PuzzleHere is more about Elepar's current 3-pronged approach, starting from the distributed resources and working towards the user's programming methodology.PICA Peer-to-Grid ArchitecturePICA is a set of protocols and standards for managing, bidding for, and accounting for distributed resources: compute resources (like processors and programs), archival resources (like file and database systems), personnel resources (people!), and so-called robotic resources (peripherals and automated instruments like telescopes, satellites, etc.), as well as the channel resources (like networks) for tying them together. More specifically, PICA describes how to create a "resource company" which deals in resources (perhaps provided by other "supplier" resource companies), and standard ways for both end-users and middlement to negotiate with resource companies and acquire resources from them.Cooperative Data Sharing (CDS)So, once you get some compute resources (or other kinds of resources that have embedded processors), how will they interact, without necessarily knowing what kinds of communication channels (e.g. message-passing networks, IP networks, shared memory) will exist between them? Cooperative Data Sharing is a support layer--a subroutine library and potential daemons--for writing programs in independent pieces that can interact with one another in a very portable and efficient way, but one which is abstract enough to a wide variety of underlying communication fabrics and protocols efficiently. CDS processes can be considered much like "threads" except without any restriction that they run on the same processor. (If the do end up on the same processor, then they behave almost exactly like threads.) For programmers familiar with existing approaches like MPI (Message-Passing Interface), DSM (Distributed Shared Memory), or Linda, CDS can also be used very much like any of those, but it is actually more flexible in many ways, and can be more efficient. It can be efficiently implemented on low-level hardware, or make use of communication co-processors and/or additional support associated with mechanisms like VIA and Infiniband. As such, CDS is useful for almost all parallel and distributed programming, even if it is not P2P (e.g. does not use PICA).Software Cabling (SC)You can write your P2P or Grid program as a bunch of CDS processes (and some will), but anyone who has written parallel or distributed programs knows that there's more to it than getting data from one place to another with efficient and flexible communication: There is also getting the right answer, and getting it fast. That means using excellent development tools (e.g. compilers and debuggers) and methodologies, and putting the right program pieces in the right places and having them communicate at the right times to minimize idle waiting. It is often impossible to make these performance decisions without first knowing the communication performance characteristics, and processing loads from external sources--and those often can't be known until the program runs. Software Cabling helps to address these problems, first by providing a natural and visual programming methodology and tools, similar to UML but optimized specifically to fully exploit portable communication (as provided by CDS), parallel constructs, and formal functional reasoning approaches. SC is actually a very high level object-oriented programming language which is designed to visually build programs from modules written in more familiar languages (like C, Java, even Fortran). The resulting programs are not only clean and portable, they execute with a dataflow style that permits the different modules to be located where the communication and computation patterns naturally put them, allowing flexible (and often automatic) performance decisions. The use of SC hides the specifics of CDS behind a natural module composition mechanism: Like CDS, SC is useful for many high-performance parallel and distributed computing environments other than just P2P.
|
Back to the overall solutions diagram, or all the way back to the challenges being addressed. Tutorial level information is also available for PICA, SC, and CDS |