...
For more information, please visit https://neko.cfd.
Note: The page may be changed until the competition stats, maybe sure to follow up until the opening ceremony.
Neko presentation to the teams:
...
To build Neko, you will need a Fortran compiler supporting the Fortran-08 standard, autotools, pkg-config, a working MPI installation supporting the Fortran 2008 bindings (mpi_f08
), BLAS/LAPACK and JSON-Fortran. Detailed installation instructions can be found in the Neko manual.
Note: For the in-person event, a Fortran compiler supporting the entire Fortran 2008 standard is required; compilers with partial support are not supported. Therefore, it is not allowed to apply any patches located in patches/
nor modify src/common/signal.f90
.
Sample build script:
Code Block |
---|
#!/bin/bash export MPIFC=mpif90 export CC=mpicc export FC=$MPIFC export PKG_CONFIG_PATH=/path/to/jsonfortran/lib/pkgconfig:${PKG_CONFIG_PATH} ./regen.sh ./configure --prefix=<path> make make install |
Sample output: (Update)
Code Block |
---|
_ __ ____ __ __ ____ / |/ / / __/ / //_/ / __ \ / / / _/ / ,< / /_/ / /_/|_/ /___/ /_/|_| \____/ (version: 0.8.0-rc1) (build: 2024-04-10 on x86_64-pc-linux-gnu using cray) -------Job Information-------- Start time: 10:41 / 2024-04-10 Running on: 256 MPI ranks CPU type : AMD EPYC 7742 64-Core Processor Bcknd type: CPU Real type : double precision -------------Case------------- Reading case file tgv_Re1600.case -------------Mesh------------- Reading a binary Neko file 32768.nmsh ... -----Material properties------ Read non-dimensional values: ... -----Starting simulation------ ... -----Starting simulation------ T : [ 0.0000000E+00, 0.2000000E+01) dt : 0.5000000E-03 ... ---------------------------------------------------------------- t = 0.0000000E+00 [ 0.00% ] ---------------------------------------------------------------- Time-step: 1 CFL: 0.3970812E-01 dt: 0.5000000E-03 ... ---------------------------------------------------------------- t = 0.2000000E2683500E+01 [ 100 26.00%84% ] ---------------------------------------------------------------- Time-step: 40015368 CFL: 0.4271451E4915199E-01 dt: 0.5000000E-03 ... ------------Writer outputFluid------------- File name: field.fld Projection Pressure Proj. vec.: Orig. residual: 2 0.4020491E-05 Pressure Iterations: Start residual: Final residual: 1 0.2061696E-06 0.8489571E-07 X-Velocity Iterations: Start residual: Final residual: 2 0.8948043E-03 0.1355196E-08 Y-Velocity Iterations: Start residual: OutputFinal number:residual: 2 0.8948043E-03 10 0.1355196E-08 Z-Velocity Iterations: Start residual: Writing atFinal time:residual: 2.000500 Output 0.8240080E-03 0.1270342E-08 Elapsed time (s): 0.8980917E+03 Step 2.501281time: 0.1604918E+00 --------Postprocessing-------- ! stop at job limit >>> ! saving checkpoint >>> Normal end. |
GPU support:
To compile Neko with GPU support, please follow either the instructions in the manual (Compiling Neko for NVIDIA GPUs and Compiling Neko for AMD GPUs).
Note: A Neko installation can only support one backend. Thus, to run both CPU and GPU experiments, two different builds and installations are necessary.
...
Task &
...
Submission
These tasks aim to solve The aim of this task is to compute as many time steps as possible for the given flow case as fast as possible (time to solution); this is reported as the Elapsed time
in the log files and includes everything from solving the equations to performing I/Owithin a time limit of maximum 15 minutes.
Run Neko with the given input
(View file name tgv.zip neko tgv_Re1600.case
) on CPU nodes either CPUs or GPUs and submit the results to the team’s folder result (standard output)
Note: the small input is for you to play around.Run Neko with the given input on a couple of GPUs (the memory requirements of the case is roughly 2 A100 or 4 V100) and submit the results to the team’s folder (see instructions for GPU support above, and the additional information provided with the input file)
Note: You are allowed to experiment with different linear solvers in Neko (see the manual) to achieve the fastest runtime. However, all of them are not guaranteed to work for the given case or support all hardware backends in Neko. Furthermore, it is allowed to experiment with different configuration options when building Neko, e.g., enabling device-aware MPI. However, it is not allowed to use single precision.