We are unable to create an online viewer for this document. Please download the document instead.
General-Purpose, Internet-Scale DistributedComputing with Linked ProcessLinked ProcessMarko A. RodriguezT-5/Center for Nonlinear Studies, Los Alamos National Laboratoryhttp://markorodriguez.comSeptember 10, 20091AbstractThere are many distributed computing protocols in existence today. Some serveas a solution for scientific computing, some as a middleware solution to large-scale systems engineering, and others as an “easy-to-use” service solution on theWeb.What most of these protocols have in common is that they require astrong “handshake” between the machines utilizing each other’s resources. Thiscoupling has rendered many distributed protocols to only be useful for a collection ofmachines owned and operated by a single organization (e.g. MPI/PVM computing)or for use by foreign machines with a very specific use case (e.g. RPC/Web Servicescomputing).The former allows for general-purpose distributed computing andthe latter allows for Internet-scale distributed computing. What if both types offunctionality were to be merged?What does a general-purpose, Internet-scaledistributed computing protocol look like?Linked Process [ http://linkedprocess.org ]Center for Nonlinear Studies – Los Alamos, New Mexico – September 10, 20092A General-Purpose Requirement• General-purpose:it is required that the code executed is notnecessarily defined by the executing device, but instead can bedefined by the requesting device.Language-agnostic:it is required that distributed code can, inprinciple, be written in any computer language.Safe: it is required that the execution of code be confined by clearlyspecified permissions on the executing device.Accessible: it is required that various types of computing resourcesbe accessible when permissions allow.The notion of “general-purpose” is not defined according to a single dimension as there are various general-purpose approacheswhich each attain certain types of generality. Please be generous in your interpretation of this term for the time being.Center for Nonlinear Studies – Los Alamos, New Mexico – September 10, 20093An Internet-Scale Requirement• Internet-scale: it is required that any device with an Internet connection(from a cell phone to a supercomputer) be able contribute and leveragecomputing resources.Decentralized: it is required that the computing resources are notcentralized or controlled by any one party.Discoverable: it is required that devices be discoverable by otherdevices needing to leverage their resources.Transient: it is required that devices coming online and offline areeasily incoporated and removed.The extreme notion of “Internet-scale” goes beyond the 32-bit addresses of the IP protocol. There are more than 4,294,967,296devices on the Internet. Thus, at the extreme, “Internet-scale” refers to all devices that can communicate and be communicatedwith through the Internet.Center for Nonlinear Studies – Los Alamos, New Mexico – September 10, 2009OutlineL o P4• An Introduction to Other Distributed Computing ProtocolsGeneral-Purpose Distributed Computing with MPIInternet-Scale Distributed Computing with Web Services• An Introduction to the Linked Process ProtocolInternet-Scale Distributed Computing with Linked ProcessGeneral-Purpose Distributed Computing with Linked Process• An Introduction to the Linked Process Protocol Implementation• Current and Future State of Linked ProcessCenter for Nonlinear Studies – Los Alamos, New Mexico – September 10, 2009OutlineL o P5• An Introduction to Other Distributed Computing ProtocolsGeneral-Purpose Distributed Computing with MPIInternet-Scale Distributed Computing with Web Services• An Introduction to the Linked Process ProtocolInternet-Scale Distributed Computing with Linked ProcessGeneral-Purpose Distributed Computing with Linked Process• An Introduction to the Linked Process Protocol Implementation• Current and Future State of Linked ProcessCenter for Nonlinear Studies – Los Alamos, New Mexico – September 10, 20096A Short Note on Other Protocol Discussions• The symbol “” means that this feature is good with respect to thetwo previous requirements.• The symbol “” means this feature is bad with respect to the twoprevious requirements.There are always tradeoffs in computing. These are not “objective”valuations of the protocols discussed next. Valuations are in terms of therequirements set forth for the design of Linked Process. Linked Processwon’t solve all problems—it is “yet another distributed computingprotocol” that has a collection of unique features that make it useful forproblems with the aforementioned requirements.Center for Nonlinear Studies – Los Alamos, New Mexico – September 10, 2009OutlineL o P7• An Introduction to Other Distributed Computing ProtocolsGeneral-Purpose Distributed Computing with MPIInternet-Scale Distributed Computing with Web Services• An Introduction to the Linked Process ProtocolInternet-Scale Distributed Computing with Linked ProcessGeneral-Purpose Distributed Computing with Linked Process• An Introduction to the Linked Process Protocol Implementation• Current and Future State of Linked ProcessCenter for Nonlinear Studies – Los Alamos, New Mexico – September 10, 20098General-Purpose: Distributed Computing with MPI• The Message Passing Interface (MPI) is a language agnostic protocolfor inter-process communication.• Processes (i.e. threads of execution) communicate by passing databetween each other (i.e. messages).send(&x, p2): send data pointed to by x to process p2.recv(&y, p1): receive data from process p2 and store it at y.process 1process 2int x[100];int y[100];......time......send(&x, 2);recv(&y, 1);Center for Nonlinear Studies – Los Alamos, New Mexico – September 10, 20099General-Purpose: Distributed Computing with MPImarko> more hosts.txtmachine1machine2marko> mpirun -machinefile hosts.txt -np=3 myProgramspawning myProgram on machine1...spawning myProgram on machine2...spawning myProgram on machine1...Executing...Done. Thank you, compute again.marko>Within myProgram the code branches depending on which “rank” its process is (e.g., with respect to the above example, rank iseither 1, 2, or 3). This way, each processor is doing a task particular to its self/rank.Center for Nonlinear Studies – Los Alamos, New Mexico – September 10, 2009
Add New Comment