Actions

Runtimes (os/hardware-facing): Difference between revisions

From Modelado Foundation

imported>Schulzm
No edit summary
imported>Rbbrigh
No edit summary
Line 15: Line 15:
|- style="vertical-align:top;"
|- style="vertical-align:top;"
|What system calls does your RTS currently use?
|What system calls does your RTS currently use?
|(XPRESS)
|''HPX requires basic calls for memory allocation and deallocation, virtual address translation and management, thread execution resource allocation and deallocation, parcel communication transmit and receive, error detection, and others.''
|(TG)
|(TG)
|(DEGAS)
|(DEGAS)
Line 27: Line 27:
|- style="vertical-align:top;"
|- style="vertical-align:top;"
|Does your RTS span the system? If so, what network interface capability does your RTS need?
|Does your RTS span the system? If so, what network interface capability does your RTS need?
|(XPRESS)
|''The HPX RTX spans the system. It requires global address space and parcels message-driven interface.''
|(TG)
|(TG)
|(DEGAS)
|(DEGAS)
Line 39: Line 39:
|- style="vertical-align:top;"
|- style="vertical-align:top;"
|How does your RTS map user-level and OS-level scheduling?
|How does your RTS map user-level and OS-level scheduling?
|(XPRESS)
|''The LXK OS allocates a share of its execution resources (e.g., Pthreads) to each relatively root ParalleX Process allocated to the locality. The HPX runtime system uses lightweight scheduling policies to assign user threads to the allocated OS threads.''
|(TG)
|(TG)
|(DEGAS)
|(DEGAS)
Line 51: Line 51:
|- style="vertical-align:top;"
|- style="vertical-align:top;"
|What does your RTS use for locality information?
|What does your RTS use for locality information?
|(XPRESS)
|''The “locality” is defined as a synchronous domain that guarantees bounded response time and compound atomic sequences of operations. Compute complexes (thread instances) are to be performed on a single locality at a time and can assume its properties. ParalleX Processes are contexts that define relative logical locality although this may span multiple localities. Parcels permit asynchronous non-blocking operation and move work to data to minimize latency effects.''
|(TG)
|(TG)
|(DEGAS)
|(DEGAS)
Line 63: Line 63:
|- style="vertical-align:top;"
|- style="vertical-align:top;"
|What OS or hardware information does your RTS need to monitor and adapt?
|What OS or hardware information does your RTS need to monitor and adapt?
|(XPRESS)
|''Availability of execution resources, energy consumption, detected errors, delays due to contention.''
|(TG)
|(TG)
|(DEGAS)
|(DEGAS)
Line 75: Line 75:
|- style="vertical-align:top;"
|- style="vertical-align:top;"
|Does your RTS require support for global namespace or global address space?
|Does your RTS require support for global namespace or global address space?
|(XPRESS)
|''Yes.''
|(TG)
|(TG)
|(DEGAS)
|(DEGAS)
Line 87: Line 87:
|- style="vertical-align:top;"
|- style="vertical-align:top;"
|What local memory management capability does your RTS require?
|What local memory management capability does your RTS require?
|(XPRESS)
|''It must have support for allocation and deallocation of physical memory blocks. It must have support for protected virtual memory addresses at the local level. It must receive error information during memory accesses.''
|(TG)
|(TG)
|(DEGAS)
|(DEGAS)
Line 99: Line 99:
|- style="vertical-align:top;"
|- style="vertical-align:top;"
|Does your RTS address external I/O capability?
|Does your RTS address external I/O capability?
|(XPRESS)
|''Yes.''
|(TG)
|(TG)
|(DEGAS)
|(DEGAS)
Line 111: Line 111:
|- style="vertical-align:top;"
|- style="vertical-align:top;"
|What interface and/or mechanism is used for the OS to request RTS services?
|What interface and/or mechanism is used for the OS to request RTS services?
|(XPRESS)
|''The OS (e.g., LXK) may make user requests of the runtime information to coordinate actions, resources, and services across multiple localities or the entire system and to provide high-level functionality like POSIX calls.''
|(TG)
|(TG)
|(DEGAS)
|(DEGAS)
Line 123: Line 123:
|- style="vertical-align:top;"
|- style="vertical-align:top;"
|How does your RTS support legacy application or legacy RTS capability?
|How does your RTS support legacy application or legacy RTS capability?
|(XPRESS)
|''Both MPI and OpenMP software interfaces are being provided to XPI as a target interface to HPX. LXK can also support both in native form.''
|(TG)
|(TG)
|(DEGAS)
|(DEGAS)
Line 135: Line 135:
|- style="vertical-align:top;"
|- style="vertical-align:top;"
|Does your RTS depend on any specific hardware-specific capability?
|Does your RTS depend on any specific hardware-specific capability?
|(XPRESS)
|''HPX at a minimum requires standard hardware functionality of conventional systems but would benefit from new capabilities for efficiency and scalability.''
|(TG)
|(TG)
|(DEGAS)
|(DEGAS)

Revision as of 20:07, May 7, 2014

QUESTIONS XPRESS TG X-Stack DEGAS D-TEC DynAX X-TUNE GVR CORVETTE SLEEC PIPER
PI Ron Brightwell Shekhar Borkar Katherine Yelick Daniel Quinlan Guang Gao Mary Hall Andrew Chien Koushik Sen Milind Kulkarni Martin Schulz
What system calls does your RTS currently use? HPX requires basic calls for memory allocation and deallocation, virtual address translation and management, thread execution resource allocation and deallocation, parcel communication transmit and receive, error detection, and others. (TG) (DEGAS) (D-TEC) (DynAX) (X-TUNE) (GVR) (CORVETTE) SLEEC The PIPER runtime will be used to collect performance information - it will be out of band, potentially running on external (non-compute node) resources. As such, we require additional communication mechanisms, which is currently mostly done through sockets. Additionally, tools typically use ptrace, signals, and shared memory segments, as well as the dynamic linker for their implementation.
Does your RTS span the system? If so, what network interface capability does your RTS need? The HPX RTX spans the system. It requires global address space and parcels message-driven interface. (TG) (DEGAS) (D-TEC) (DynAX) (X-TUNE) (GVR) (CORVETTE) N/A Tools will have a global "runtime" to collect and aggregate data - this network will be out of band. This will span the whole job, in some cases the whole machine. A high performance communication mechanism would be preferable - currently mostly sockets are used.
How does your RTS map user-level and OS-level scheduling? The LXK OS allocates a share of its execution resources (e.g., Pthreads) to each relatively root ParalleX Process allocated to the locality. The HPX runtime system uses lightweight scheduling policies to assign user threads to the allocated OS threads. (TG) (DEGAS) (D-TEC) (DynAX) (X-TUNE) (GVR) (CORVETTE) N/A N/A
What does your RTS use for locality information? The “locality” is defined as a synchronous domain that guarantees bounded response time and compound atomic sequences of operations. Compute complexes (thread instances) are to be performed on a single locality at a time and can assume its properties. ParalleX Processes are contexts that define relative logical locality although this may span multiple localities. Parcels permit asynchronous non-blocking operation and move work to data to minimize latency effects. (TG) (DEGAS) (D-TEC) (DynAX) (X-TUNE) (GVR) (CORVETTE) N/A Locality/topology information should be exposed by the application facing runtime and will be used for proper attribution of performance data.
What OS or hardware information does your RTS need to monitor and adapt? Availability of execution resources, energy consumption, detected errors, delays due to contention. (TG) (DEGAS) (D-TEC) (DynAX) (X-TUNE) (GVR) (CORVETTE) N/A in short: anything and everything - in particular hardware counters (in profiling and sampling) and any kind of system adaptation information (where does system configuration change) is required
Does your RTS require support for global namespace or global address space? Yes. (TG) (DEGAS) (D-TEC) (DynAX) (X-TUNE) (GVR) (CORVETTE) N/A N/A
What local memory management capability does your RTS require? It must have support for allocation and deallocation of physical memory blocks. It must have support for protected virtual memory addresses at the local level. It must receive error information during memory accesses. (TG) (DEGAS) (D-TEC) (DynAX) (X-TUNE) (GVR) (CORVETTE) N/A Individual parts of the runtime will require dynamic memory management - additionally, shared memory communication with a target process would be highly beneficial
Does your RTS address external I/O capability? Yes. (TG) (DEGAS) (D-TEC) (DynAX) (X-TUNE) (GVR) (CORVETTE) N/A N/A
What interface and/or mechanism is used for the OS to request RTS services? The OS (e.g., LXK) may make user requests of the runtime information to coordinate actions, resources, and services across multiple localities or the entire system and to provide high-level functionality like POSIX calls. (TG) (DEGAS) (D-TEC) (DynAX) (X-TUNE) (GVR) (CORVETTE) N/A N/A
How does your RTS support legacy application or legacy RTS capability? Both MPI and OpenMP software interfaces are being provided to XPI as a target interface to HPX. LXK can also support both in native form. (TG) (DEGAS) (D-TEC) (DynAX) (X-TUNE) (GVR) (CORVETTE) N/A Yes: PIPER components intend to support tools for MPI+X codes as well as new RTS and DSL approaches
Does your RTS depend on any specific hardware-specific capability? HPX at a minimum requires standard hardware functionality of conventional systems but would benefit from new capabilities for efficiency and scalability. (TG) (DEGAS) (D-TEC) (DynAX) (X-TUNE) (GVR) (CORVETTE) N/A Full (and well documented) access to performance counters, profiling and sampling