The NEXTGenIO system closes the memory and storage gap. However, NEXTGenIO is not only building a prototype system, it is also developing the software to be used in conjunction with the hardware.
The systemware stack, which sits between the hardware and the user applications, exposes the prototype architecture to the user level and enables direct interaction. The performance profiling and debugging tools can benefit from the new memory technology directly, but importantly they need to take this new memory/storage hierarchy layer into account in their feedback. The I/O Workload Simulator can generate (and simulate) the job workload of an entire data centre and, in a first instance, is used to stress test the prototype system architecture.
For more information, see the NEXTGenIO Systemware White Paper: NVRAM Data Storage and the NEXTGenIO Architecture White Paper: Systemware Architecture & Usage Scenarios.
NEXTGenIO is extending the SLURM workload manager specifically for the NEXTGenIO architecture.
The scheduler is made both data locality and energy aware, and can take knowledge on where data is located and how much power/energy the job and system is consuming when making decisions on where jobs are being placed.
I/O Workload Simulator (IOWS)
Modern HPC systems are (increasingly) complex and heterogeneous. As a result, the relationship between the results of benchmarking and the observed performance under real-life workloads is increasingly unclear. The I/O Workload Simulator aims to generate, run, and benchmark a workload representative of a real-life computational workload but in an environment that is controlled and easily portable. Moreover, it aims to generate these workloads automatically, based on analysis of collected workloads from operational HPC systems.
The IOWS is a collection of different software tools. The first stage is made of measurement tools, which are used to gather data about real jobs running on a supercomputer. This includes details such as the number of file accesses, how much data is transferred and how much computation is carried out.
The job descriptions are then categorised and a model of the workload is automatically built. This aims to group the measured jobs into classes, and in doing so, to reduce the complexity and diversity of the real workload into a schedule of idealised, model tasks. From this, artificial synthetic applications are generated along with a specific schedule, and these can be executed either on the original HPC system or another one.
NEXTGenIO is working on enabling tools to take advantage of non-volatile memory technology.
The work here is twofold: firstly, tools can improve their own performance by using non-volatile memory, rather that disk, to store data. Secondly, profiling and debugging tools need to be aware of the new memory layer and understand the implications on correctness and performance to provide relevant and useful feedback to the user.