Message Passing

Total Page:16

File Type:pdf, Size:1020Kb

Message Passing Message passing CS252 • Sending of messages under control of programmer – User-level/system level? Graduate Computer Architecture – Bulk transfers? Lecture 24 • How efficient is it to send and receive messages? – Speed of memory bus? First-level cache? Network Interface Design • Communication Model: Memory Consistency Models – Synchronous » Send completes after matching recv and source data sent » Receive completes after data transfer complete from matching send – Asynchronous Prof John D. Kubiatowicz » Send completes after send buffer may be reused http://www.cs.berkeley.edu/~kubitron/cs252 4/27/2009 cs252-S09, Lecture 24 2 Synchronous Message Passing Asynch. Message Passing: Optimistic Source Destination Source Destination (1) Initiate send Recv Psrc, local VA, len (1) Initiate send (2) Address translation on Psrc Send Pdest, local VA, len (2) Address translation (3) Local/remote check Send (P , local VA, len) (3) Local/remote check dest (4) Send-ready request Send-rdy req (4) Send data (5) Remote check for (5) Remote check for posted receive; on fail, Tag match allocate data buffer posted receive Wait Tag check Data-xfer req (assume success) Processor Allocate buffer Action? (6) Reply transaction Recv-rdy reply (7) Bulk data transfer Source VA Dest VA or ID Recv P , local VA, len Time src Data-xfer req Time • More powerful programming model • Constrained programming model. • Wildcard receive => non-deterministic • Deterministic! What happens when threads added? • Destination contention very limited. • Storage required within msg layer? • User/System boundary? 4/27/2009 cs252-S09, Lecture 24 3 4/27/2009 cs252-S09, Lecture 24 4 Asynch. Msg Passing: Conservative Features of Msg Passing Abstraction Destination • Source knows send data address, dest. knows Source receive data address (1) Initiate send (2) Address translation on Pdest Send Pdest, local VA, len – after handshake they both know both (3) Local/remote check (4) Send-ready request Send-rdy req • Arbitrary storage “outside the local address spaces” (5) Remote check for posted – may post many sends before any receives receive (assume fail); Return and compute record send-ready Tag check – non-blocking asynchronous sends reduces the requirement to an arbitrary number of descriptors » fine print says these are limited too (6) Receive-ready request Recv Psrc, local VA, len (7) Bulk data reply • Optimistically, can be 1-phase transaction Source VA Dest VA or ID – Compare to 2-phase for shared address space Recv-rdy req – Need some sort of flow control » Credit scheme? Data-xfer reply • More conservative: 3-phase transaction Time • Where is the buffering? – includes a request / response • Essential point: combined synchronization and • Contention control? Receiver initiated protocol? communication in a single package! • Short message optimizations 4/27/2009 cs252-S09, Lecture 24 5 4/27/2009 cs252-S09, Lecture 24 6 Active Messages Common Challenges • Input buffer overflow – N-1 queue over-commitment => must slow sources Request handler • Options: Reply – reserve space per source (credit) handler » when available for reuse? • Ack or Higher level – Refuse input when full » backpressure in reliable network » tree saturation • User-level analog of network transaction » deadlock free – transfer data packet and invoke handler to extract it from the » what happens to traffic not bound for congested dest? network and integrate with on-going computation – Reserve ack back channel • Request/Reply – drop packets • Event notification: interrupts, polling, events? – Utilize higher-level semantics of programming model • May also perform memory-to-memory transfer 4/27/2009 cs252-S09, Lecture 24 7 4/27/2009 cs252-S09, Lecture 24 8 Spectrum of Designs Net Transactions: Physical DMA • None: Physical bit stream – blind, physical DMA nCUBE, iPSC, . Data Dest • User/System DMA – User-level port CM-5, *T, Alewife, RAW channels Addr Addr – User-level handler J-Machine, Monsoon, . Cmd Status, Length interrupt Length • Remote virtual address Rdy Rdy Memory P – Processing, translation Paragon, Meiko CS-2 Memory P • Global physical address – Proc + Memory controller RP3, BBN, T3D • DMA controlled by regs, generates interrupts • Cache-to-cache • Physical => OS initiates transfers sender auth – Cache controller Dash, Alewife, KSR, Flash • Send-side dest addr – construct system “envelope” around user data in kernel area Increasing HW Support, Specialization, Intrusiveness, Performance (???) • Receive – receive into system buffer, since no interpretation in user space 4/27/2009 cs252-S09, Lecture 24 9 4/27/2009 cs252-S09, Lecture 24 10 nCUBE Network Interface Conventional LAN NI Host Memory NIC Input ports Output ports trncv Switch NIC Controller Data TX addr DMA DMA Addr Addr Addr Addr Addr Addr RX channels len Length Length Length Addr Len Addr Len Memory Status Status bus IO Bus Next Next Memory Processor mem bus Addr Len Addr Len Status Status • independent DMA channel per link direction Next Next Proc – leave input buffers always open Addr Len Addr Len Status Status – segmented messages Os 16 ins 260 cy 13 us Next Next Or 18 200 cy 15 us • routing interprets envelope - includes interrupt – dimension-order routing on hypercube – bit-serial with 36 bit cut-through • Costs: Marshalling, OS calls, interrupts 4/27/2009 cs252-S09, Lecture 24 11 4/27/2009 cs252-S09, Lecture 24 12 User Level Ports Example: CM-5 Virtual address space User/system Data Dest Net output • Input and output Diagnostics network port Control network FIFO for each Data network Net input port network Processor PM PM Status • 2 data networks Processing Processing Control I/O partition partition partition processors Status, Registers Mem P Mem P interrupt • tag per message Program counter – index NI mapping table SPARC FPU Data Control • context switching? networks network $ • initiate transaction at user level $ NI ctrl SRAM • deliver to user without OS intervention MBUS • Alewife integrated Vector Vector DRAM unit DRAM DRAM unit DRAM • network port in user space NI on chip ctrl ctrl ctrl ctrl – May use virtual memory to map physical I/O to user mode DRAM DRAM DRAM DRAM • *T and iWARP also • User/system flag in envelope – protection check, translation, routing, media access in src CA Os 50 cy 1.5 us – user/sys check in dest CA, interrupt on system Or 53 cy 1.6 us interrupt 10us 4/27/2009 cs252-S09, Lecture 24 13 4/27/2009 cs252-S09, Lecture 24 14 RAW processor: Systolic Computation User Level Handlers User/system Data Address Dest Mem Mem P P • Very fast support for systolic processing • Hardware support to vector to address specified in – Streaming from one processor to another message » Simple moves into network ports and out of network ports – On arrival, hardware fetches handler address and starts execution – Static router programmed at same time as processors • Active Messages: two options • Also included dynamic network for unpredictable – Computation in background threaads » Handler never blocks: it integrates message into computation computations (and things like cache misses) – Computation in handlers (Message Driven Processing) » Handler does work, may need to send messages or block 4/27/2009 cs252-S09, Lecture 24 15 4/27/2009 cs252-S09, Lecture 24 16 J-Machine Alewife Messaging • Send message – write words to special network interface registers – Execute atomic launch instruction • Receive – Generate interrupt/launch user-level thread context – Examine message by reading from special network interface registers • Each node a small mdg – Execute dispose message driven processor – Exit atomic section • HW support to queue msgs and dispatch to msg handler task 4/27/2009 cs252-S09, Lecture 24 17 4/27/2009 cs252-S09, Lecture 24 18 Sharing of Network Interface The Fetch Deadlock Problem • What if user in middle of constructing message • Even if a node cannot issue a request, it must sink and must context switch??? network transactions! – Need Atomic Send operation! – Incoming transaction may be request generate a response. » Message either completely in network or not at all – Closed system (finite buffering) » Can save/restore user’s work if necessary (think about single set of network interface registers • Deadlock occurs even if network deadlock free! – J-Machine mistake: after start sending message must let sender finish » Flits start entering network with first SEND instruction » Only a SENDE instruction constructs tail of message • Receive Atomicity – If want to allow user-level interrupts or polling, must give user control over network reception NETWORK » Closer user is to network, easier it is for him/her to screw NETWORK it up: Refuse to empty network, etc » However, must allow atomicity: way for good user to select when their message handlers get interrupted – Polling: ultimate receive atomicity – never interrupted » Fine as long as user keeps absorbing messages 4/27/2009 cs252-S09, Lecture 24 19 4/27/2009 cs252-S09, Lecture 24 20 Solutions to Fetch Deadlock? Example Queue Topology: Alewife • logically independent request/reply networks • Message-Passing and – physical networks Shared-Memory both need – virtual channels with separate input/output queues messages • bound requests and reserve input buffer space – Thus, can provide both! – K(P-1) requests + K responses per node • When deadlock detected, – service discipline to avoid fetch deadlock? start storing messages to • NACK on input buffer full memory (out of hardware) – NACK delivery? – Remove deadlock by increasing available queue space • Alewife Solution:
Recommended publications
  • Efficient Inter-Core Communications on Manycore Machines
    ZIMP: Efficient Inter-core Communications on Manycore Machines Pierre-Louis Aublin Sonia Ben Mokhtar Gilles Muller Vivien Quema´ Grenoble University CNRS - LIRIS INRIA CNRS - LIG Abstract—Modern computers have an increasing num- nication mechanisms enabling both one-to-one and one- ber of cores and, as exemplified by the recent Barrelfish to-many communications. Current operating systems operating system, the software they execute increasingly provide various inter-core communication mechanisms. resembles distributed, message-passing systems. To sup- port this evolution, there is a need for very efficient However it is not clear yet how these mechanisms be- inter-core communication mechanisms. Current operat- have on manycore processors, especially when messages ing systems provide various inter-core communication are intended to many recipient cores. mechanisms, but it is not clear yet how they behave In this report, we study seven communication mech- on manycore processors. In this report, we study seven anisms, which are considered state-of-the-art. More mechanisms, that are considered state-of-the-art. We show that these mechanisms have two main drawbacks that precisely, we study TCP, UDP and Unix domain sock- limit their efficiency: they perform costly memory copy ets, pipes, IPC and POSIX message queues. These operations and they do not provide efficient support mechanisms are supported by traditional operating sys- for one-to-many communications. We do thus propose tems such as Linux. We also study Barrelfish message ZIMP, a new inter-core communication mechanism that passing, the inter-process communication mechanism of implements zero-copy inter-core message communications and that efficiently handles one-to-many communications.
    [Show full text]
  • D-Bus, the Message Bus System Training Material
    Maemo Diablo D-Bus, The Message Bus System Training Material February 9, 2009 Contents 1 D-Bus, The Message Bus System 2 1.1 Introduction to D-Bus ......................... 2 1.2 D-Bus architecture and terminology ................ 3 1.3 Addressing and names in D-Bus .................. 4 1.4 Role of D-Bus in maemo ....................... 6 1.5 Programming directly with libdbus ................. 9 1 Chapter 1 D-Bus, The Message Bus System 1.1 Introduction to D-Bus D-Bus (the D originally stood for "Desktop") is a relatively new inter process communication (IPC) mechanism designed to be used as a unified middleware layer in free desktop environments. Some example projects where D-Bus is used are GNOME and Hildon. Compared to other middleware layers for IPC, D-Bus lacks many of the more refined (and complicated) features and for that reason, is faster and simpler. D-Bus does not directly compete with low level IPC mechanisms like sock- ets, shared memory or message queues. Each of these mechanisms have their uses, which normally do not overlap the ones in D-Bus. Instead, D-Bus aims to provide higher level functionality, like: Structured name spaces • Architecture independent data formatting • Support for the most common data elements in messages • A generic remote call interface with support for exceptions (errors) • A generic signalling interface to support "broadcast" type communication • Clear separation of per-user and system-wide scopes, which is important • when dealing with multi-user systems Not bound to any specific programming language (while providing a • design that readily maps to most higher level languages, via language specific bindings) The design of D-Bus benefits from the long experience of using other mid- dleware IPC solutions in the desktop arena and this has allowed the design to be optimised.
    [Show full text]
  • Message Passing Model
    Message Passing Model Giuseppe Anastasi [email protected] Pervasive Computing & Networking Lab. (PerLab) Dept. of Information Engineering, University of Pisa PerLab Based on original slides by Silberschatz, Galvin and Gagne Overview PerLab Message Passing Model Addressing Synchronization Example of IPC systems Message Passing Model 2 Operating Systems Objectives PerLab To introduce an alternative solution (to shared memory) for process cooperation To show pros and cons of message passing vs. shared memory To show some examples of message-based communication systems Message Passing Model 3 Operating Systems Inter-Process Communication (IPC) PerLab Message system – processes communicate with each other without resorting to shared variables. IPC facility provides two operations: send (message ) – fixed or variable message size receive (message ) If P and Q wish to communicate, they need to: establish a communication link between them exchange messages via send/receive The communication link is provided by the OS Message Passing Model 4 Operating Systems Implementation Issues PerLab Physical implementation Single-processor system Shared memory Multi-processor systems Hardware bus Distributed systems Networking System + Communication networks Message Passing Model 5 Operating Systems Implementation Issues PerLab Logical properties Can a link be associated with more than two processes? How many links can there be between every pair of communicating processes? What is the capacity of a link? Is the size of a message that the link can accommodate fixed or variable? Is a link unidirectional or bi-directional? Message Passing Model 6 Operating Systems Implementation Issues PerLab Other Aspects Addressing Synchronization Buffering Message Passing Model 7 Operating Systems Overview PerLab Message Passing Model Addressing Synchronization Example of IPC systems Message Passing Model 8 Operating Systems Direct Addressing PerLab Processes must name each other explicitly.
    [Show full text]
  • Message Passing
    COS 318: Operating Systems Message Passing Jaswinder Pal Singh Computer Science Department Princeton University (http://www.cs.princeton.edu/courses/cos318/) Sending A Message Within A Computer Across A Network P1 P2 Send() Recv() Send() Recv() Network OS Kernel OS OS COS461 2 Synchronous Message Passing (Within A System) Synchronous send: u Call send system call with M u send system call: l No buffer in kernel: block send( M ) recv( M ) l Copy M to kernel buffer Synchronous recv: u Call recv system call M u recv system call: l No M in kernel: block l Copy to user buffer How to manage kernel buffer? 3 API Issues u Message S l Buffer (addr) and size l Message type, buffer and size u Destination or source send(dest, msg) R l Direct address: node Id, process Id l Indirect address: mailbox, socket, recv(src, msg) channel, … 4 Direct Addressing Example Producer(){ Consumer(){ ... ... while (1) { for (i=0; i<N; i++) produce item; send(Producer, credit); recv(Consumer, &credit); while (1) { send(Consumer, item); recv(Producer, &item); } send(Producer, credit); } consume item; } } u Does this work? u Would it work with multiple producers and 1 consumer? u Would it work with 1 producer and multiple consumers? u What about multiple producers and multiple consumers? 5 Indirect Addressing Example Producer(){ Consumer(){ ... ... while (1) { for (i=0; i<N; i++) produce item; send(prodMbox, credit); recv(prodMbox, &credit); while (1) { send(consMbox, item); recv(consMbox, &item); } send(prodMbox, credit); } consume item; } } u Would it work with multiple producers and 1 consumer? u Would it work with 1 producer and multiple consumers? u What about multiple producers and multiple consumers? 6 Indirect Communication u Names l mailbox, socket, channel, … u Properties l Some allow one-to-one mbox (e.g.
    [Show full text]
  • Multiprocess Communication and Control Software for Humanoid Robots Neil T
    IEEE Robotics and Automation Magazine Multiprocess Communication and Control Software for Humanoid Robots Neil T. Dantam∗ Daniel M. Lofaroy Ayonga Hereidx Paul Y. Ohz Aaron D. Amesx Mike Stilman∗ I. Introduction orrect real-time software is vital for robots in safety-critical roles such as service and disaster response. These systems depend on software for Clocomotion, navigation, manipulation, and even seemingly innocuous tasks such as safely regulating battery voltage. A multi-process software design increases robustness by isolating errors to a single process, allowing the rest of the system to continue operating. This approach also assists with modularity and concurrency. For real-time tasks such as dynamic balance and force control of manipulators, it is critical to communicate the latest data sample with minimum latency. There are many communication approaches intended for both general purpose and real-time needs [19], [17], [13], [9], [15]. Typical methods focus on reliable communication or network-transparency and accept a trade-off of increased mes- sage latency or the potential to discard newer data. By focusing instead on the specific case of real-time communication on a single host, we reduce communication latency and guarantee access to the latest sample. We present a new Interprocess Communication (IPC) library, Ach,1 which addresses this need, and discuss its application for real-time, multiprocess control on three humanoid robots (Fig. 1). There are several design decisions that influenced this robot software and motivated development of the Ach library. First, to utilize decades of prior development and engineering, we implement our real-time system on top of a POSIX-like Operating System (OS)2.
    [Show full text]
  • Inter-Process Communication
    QNX Inter-Process Communication QNX IPC 2008/01/08 R08 © 2006 QNX Software Systems. QNX and Momentics are registered trademarks of QNX Software Systems in certain jurisdictions NOTES: QNX, Momentics, Neutrino, Photon microGUI, and “Build a more reliable world” are registered trademarks in certain jurisdictions, and PhAB, Phindows, and Qnet are trademarks of QNX Software Systems Ltd. All other trademarks and trade names belong to their respective owners. 1 IntroductionIntroduction IPC: • Inter-Process Communication • two processes exchange: – data – control – notification of event occurrence IPC Thread Thread Process A Process B QNX IPC 2008/01/08 R08 2 © 2006, QNX Software Systems. QNX and Momentics are registered trademarks of QNX Software Systems in certain jurisdictions NOTES: 2 IntroductionIntroduction QNX Neutrino supports a wide variety of IPC: – QNX Core (API is unique to QNX or low-level) • includes: – QNX Neutrino messaging – QNX Neutrino pulses – shared memory – QNX asynchronous messaging • the focus of this course module – POSIX/Unix (well known, portable API’s ) • includes: – signals – shared memory – pipes (requires pipe process) – POSIX message queues (requires mqueue or mq process) – TCP/IP sockets (requires io-net process) • the focus of the POSIX IPC course module QNX IPC 2008/01/08 R08 3 © 2006, QNX Software Systems. QNX and Momentics are registered trademarks of QNX Software Systems in certain jurisdictions NOTES: API: Application Programming Interface 3 InterprocessInterprocess Communication Communication Topics: Message Passing Designing a Message Passing System (1) Pulses How a Client Finds a Server Server Cleanup Multi-Part Messages Designing a Message Passing System (2) Client Information Structure Issues Related to Priorities Designing a Message Passing System (3) Event Delivery Asynchronous Message Passing QNET Shared Memory Conclusion QNX IPC 2008/01/08 R08 4 © 2006, QNX Software Systems.
    [Show full text]
  • 1 Interprocess Communication
    COMP 242 Class Notes Section 3: Interprocess Communication 1 Interprocess Communication Readings: Chapter 7, Comer. An operating system provides interprocess communication to allow processes to exchange informa- tion. Interprocess communication is useful for creating cooperating processes. For instance an ‘ls’ process and a ‘more’ process can cooperate to produce a paged listing of a directory. There are several mechanisms for interprocess communication. We discuss some of these below. 1.1 Shared Memory Processes that share memory can exchange data by writing and reading shared variables. As an example, consider two processes p and q that share some variable s. Then p can communicate information to q by writing new data in s, which q can then read. The above discussion raises an important question. How does q know when p writes new information into s? In some cases, q does not need to know. For instance, if it is a load balancing program that simply looks at the current load in p’s machine stored in s. When it does need to know, it could poll, but polling puts undue burden on the cpu. Another possibility is that it could get a software interrupt, which we discuss below. A familiar alternative is to use semaphores or conditions. Process q could block till p changes s and sends a signal that unblocks q. However, these solutions would not allow q to (automatically) block if s cannot hold all the data it wants to write. (The programmer could manually implement a bounded buffer using semaphores.) Moreover, conventional shared memory is accessed by processes on a single machine, so it cannot be used for communicating information among remote processes.
    [Show full text]
  • Shared Memory Introduction
    12 Shared Memory Introduction 12.1 Introduction Shared memory is the fastest form of IPC available. Once the memory is mapped into the address space of the processes that are sharing the memory region, no kernel involvement occurs in passing data between the processes. What is normally required, however, is some form of synchronization between the processes that are storing and fetching information to and from the shared memory region. In Part 3, we discussed various forms of synchronization: mutexes, condition variables, read–write locks, record locks, and semaphores. What we mean by ‘‘no kernel involvement’’ is that the processes do not execute any sys- tem calls into the kernel to pass the data. Obviously, the kernel must establish the mem- ory mappings that allow the processes to share the memory, and then manage this memory over time (handle page faults, and the like). Consider the normal steps involved in the client–server file copying program that we used as an example for the various types of message passing (Figure 4.1). • The server reads from the input file. The file data is read by the kernel into its memory and then copied from the kernel to the process. • The server writes this data in a message, using a pipe, FIFO, or message queue. These forms of IPC normally require the data to be copied from the process to the kernel. We use the qualifier normally because Posix message queues can be implemented using memory-mapped I/O (the mmap function that we describe in this chapter), as we showed in Section 5.8 and as we show in the solution to Exercise 12.2.
    [Show full text]
  • The Client/Server Architecture DES-0005 Revision 4
    PNNL-22587 The Client/Server Architecture DES-0005 Revision 4 Charlie Hubbard February 2012 The Client/Server Architecture Charlie Hubbard DES-0005 Revision 4 February 2012 DISCLAIMER This report was prepared as an account of work sponsored by an agency of the United States Government. Neither the United States Government nor any agency thereof, nor Battelle Memorial Institute, nor any of their employees, makes any warranty, express or implied, or assumes any legal liability or responsibility for the accuracy, completeness, or usefulness of any information, apparatus, product, or process disclosed, or represents that its use would not infringe privately owned rights. Reference herein to any specific commercial product, process, or service by trade name, trademark, manufacturer, or otherwise does not necessarily constitute or imply its endorsement, recommendation, or favoring by the United States Government or any agency thereof, or Battelle Memorial Institute. The views and opinions of authors expressed herein do not necessarily state or reflect those of the United States Government or any agency thereof. PACIFIC NORTHWEST NATIONAL LABORATORY operated by BATTELLE for the UNITED STATES DEPARTMENT OF ENERGY under Contract DE-AC05-76RL01830 Printed in the United States of America Available to DOE and DOE contractors from the Office of Scientific and Technical Information, P.O. Box 62, Oak Ridge, TN 37831-0062 ph: (865) 576-8401 fax: (865) 576-5728 email: [email protected] Available to the public from the National Technical Information Service,
    [Show full text]
  • MODELS of DISTRIBUTED SYSTEMS Basic Elements
    Distributed Systems Fö 2/3- 1 Distributed Systems Fö 2/3- 2 MODELS OF DISTRIBUTED SYSTEMS Basic Elements • Resources in a distributed system are shared between users. They are normally encapsulated within one of the computers and can be accessed from other computers by communication. 1. Architectural Models • Each resource is managed by a program, the resource manager; it offers a communication 2. Interaction Models interface enabling the resource to be deceased by its users. 3. Failure Models • Resource managers can be in general modelled as processes. If the system is designed according to an object- oriented methodology, resources are encapsulated in objects. Petru Eles, IDA, LiTH Petru Eles, IDA, LiTH Distributed Systems Fö 2/3- 3 Distributed Systems Fö 2/3- 4 Architectural Models Client - Server Model How are responsibilities distributed between system components and how are these components placed? ☞ The system is structured as a set of processes, called servers, that offer services to the users, called • Client-server model clients. • Proxy server • Peer processes (peer to peer) • The client-server model is usually based on a simple request/reply protocol, implemented with send/receive primitives or using remote procedure calls (RPC) or remote method invocation (RMI): - the client sends a request message to the server asking for some service; - the server does the work and returns a result (e.g. the data requested) or an error code if the work could not be performed. Petru Eles, IDA, LiTH Petru Eles, IDA, LiTH Distributed Systems Fö 2/3- 5 Distributed Systems Fö 2/3- 6 Client - Server Model (cont’d) Proxy Server ☞ A proxy server provides copies (replications) of resources which are managed by other servers.
    [Show full text]
  • A Ugni-Based Asynchronous Message-Driven Runtime System for Cray Supercomputers with Gemini Interconnect
    A uGNI-based Asynchronous Message-driven Runtime System for Cray Supercomputers with Gemini Interconnect Yanhua Sun, Gengbin Zheng, Laxmikant V. Kale´ Terry R. Jones Ryan Olson Department of Computer Science Computer Science and Mathematics Division Cray Inc University of Illinois at Urbana-Champaign Oak Ridge National Lab [email protected] Urbana, Illinois Oak Ridge, Tennessee fsun51, gzheng, [email protected] [email protected] Abstract—Gemini, the network for the new Cray XE/XK user-level Generic Network Interface (uGNI) [?] is pro- systems, features low latency, high bandwidth and strong scal- vided as a low-level interface for Gemini, on top of which ability. Its hardware support for remote direct memory access the Cray MPI is implemented. Gemini-based interconnects enables efficient implementation of the global address space programming languages. Although the user Generic Network have been deployed in two petaflop supercomputers, Cielo Interface (uGNI) provides a low-level interface for Gemini with at Los Alamos National Lab and Hopper at Lawrence support to the message-passing programming model (MPI), it Berkeley National Lab. Jaguar, one of the most powerful remains challenging to port alternative programming models supercomputers, is being upgraded to a XK6 system with with scalable performance. Gemini interconnect. The newly announced Blue Waters CHARM++ is an object-oriented message-driven program- ming model. Its applications have been shown to scale up to supercomputer, which will deliver sustained performance of the full Jaguar Cray XT machine. In this paper, we present 1 petaflop, will also be equipped with a Gemini interconnect. an implementation of this programming model on uGNI for As Cray supercomputers with Gemini interconnects become the Cray XE/XK systems.
    [Show full text]
  • Message-Passing Network Daemons
    Metanet: Message-Passing Network Daemons Erik Walthinsen [email protected], http://www.omegacs.net/˜omega/ Abstract ficult to accomplish the task at hand, or more likely they are simply too big to fit on the MetaNet is a message-passing architecture de- target device. The platform example used in signed for the construction of network services this paper is that of an intelligent wireless daemons. Services are implemented as a series access point (AP) running Linux. The M1 of mailboxes with attached functions to pro- from Musenki [Musenki] is just such an access vide the functionality. The mailbox namespace point, consisting of a Motorola MPC8241 em- is global across all services, allowing new dae- bedded PPC processor, 32MB of RAM, 8MB mons to hook into existing daemons to mod- of flash, a 10/100 NIC, and a MiniPCI slot for ify their behavior. A simple example is a stock a wireless card. It runs Linux natively and must DHCP daemon hooked by an external applica- be able to provide all the normal network ser- tion that does an LDAP lookup for a machine’s vices, as well as be useful to the PersonalTelco IP before falling back to the normal DHCP al- Project [PTP] in its city-wide free networking location scheme. This paper covers the archi- projects. This drives some of the more inter- tecture of the MetaNet system, and uses the ex- esting requirements, pushing well beyond the ample of a Captive Portal as used for public boundaries of current software. wireless network control to show how multi- MetaNet is an attempt at creating an infras- ple services can be quite easily tied together to tructure that enables these services to be not provide more complex services.
    [Show full text]