How to start working with a supercomputer

The general workflow for getting computing time and porting applications to supercomputers usually is as follows:

  1. Definition of the project
    • Scientific goals and plan to reach them
    • Code development goals and plan to reach them
  2. 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)
      Memory requirements
      I/O
    • 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.
  3. 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.
  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!)
Porting applications to supercomputers
Main steps for successfully porting applications to supercomputers