The general workflow for getting computing time and porting applications to supercomputers usually is as follows:
- Definition of the project
- Scientific goals and plan to reach them
- Code development goals and plan to reach them
- Choice of the target HPC architecture. To be taken into account:
- HPC architectures are parallel architectures
- Algorithms must be parallelizable
Communication pattern (between threads, cores and nodes)
- HPC architectures are shared
Access based on peer-reviewed proposals. Jobs (code to be executed, definition of execution environment, input, configurations) are first put into a queue. A (non-interactive) batch system decides which job starts next in order to optimize the usage of the system.
- Availability of software (codes, libraries, programming languages, compiler…)
- Size of simulation/computation(s) planned
- Visualization and analysis are typically (still) done in post-processing mode.
Data is written to storage and read again for visualization and/or analysis.
- Preparatory or test access to the HPC system(s)
- Porting the code to the target system (if not yet done or available)
- Realistic benchmarks, needed for the required estimate of resources in 4.
- Application for computing time resources
- Choice of appropriate resource pool/call for access
- Use of available application templates
- Provision of a detailed work plan and a sound estimate of resources required
- Template for computing time proposal (only exemplary, use the call-specific templates for applying!)