![]() ![]() The code is expecting a GPU for each MPI task and since Cartesius has two GPUs per node, if you want to run with 48 GPUs ( -n 48) you will request half the nodes ( -N 24). To submit a job on Cartesius, you can use a script similar to this one. The Makefile will build three executables, afid_gpu, afid_cpu, and afid_hyb (under development) To compile the code on Cartesius at SARA, first login on node gcn1 (the code requires some CUDA libraries that seems to be available only there), then: Rotating the initial flow field seems to help the issue in this case.Ĭartesius (SURFsara) compilation and run instructions (last check April 17, 2017) ![]() This is potentially due to the hybrid decomposition splitting across the extruded axis where the initial flow field is constant. When starting a simulation from scratch using the built-in initial condition, the hybrid implementation can show some stability issues, and may require a smaller timestep than the GPU or CPU code, at least initially. See the provided input files to see where to define this new input variable. In all cases, the solution of the Poisson system remains fully on the GPU. For example, setting GC_SPLIT_RATIO to 0.8 will associate 80% of the domain to the GPU and the remaining 20% to the CPU. This variable controls the distribution of the domain between the CPU and GPU. This variable must be set so that 0.0 < GC_SPLIT_RATIO < 1.0. The generic interfaces themselves, for all the overloaded subroutines following this pattern can be found within SolverInterfaces.F90įor the hybrid code, an additional input variable, GC_SPLIT_RATIO is required. ![]() For example, CalcLocalDivergence.F90 contains only the subroutine interfaces, while CalcLocalDivergence_common.F90 contains the main routine source code, with necessary preprocessor directives to control the compilation. To minimize repeating code for the various versions, many of the main solver subroutine files have been split into two files, a file that contains overloaded interfaces (one for CPU data, one for GPU data) to the subroutine and another included "common" file which contains the actual source. ![]() For the GPU and CPU executables, the input files and variables within are identical to those used in the standard CPU AFID code. Simply rename or create a link to one of the test input files with the name 'bou.in' and run the desired executable from the directory containing this input file/link. The procedure to run is identical to the standard CPU AFID code ( ). These correspond to the GPU version of the code, CPU version of the code, and the hybrid version respectively.Ī couple of simple test input files have been provided within the Run_test directory. Upon successful compilation, three executables will be generated, afid_gpu, afid_cpu, and afid_hyb. Edit the variables at the top of the file for proper linking to external dependencies. To compile the code, use the provided Makefile (Cartesius) as reference and Makefile_PizDaint (Piz Daint). The code requires the PGI compiler version 15.7 or higher. Verzicco, A pencil distributed finite difference code for strongly turbulent wall-bounded flows, Computers and Fluids, 116, 10-16 (2015), see įor a description about the CPU version of the development of the used numerical method. Submitted to Computer Physics Communications, see ArXiv paper įor a description of the GPU version of the code andĮ.P. Stevens,ĪFiD-GPU: a versatile Navier-Stokes Solver for Wall-Bounded Turbulent Flows on GPU Clusters, ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |