Home

Awesome

CUDA and OpenMP-parallelized code for computing the Henry coefficient in IRMOF-1

These codes were used to generate the results in Nvidia's Parallel For All Blog.

:honeybee: The crystal structure of metal-organic framework IRMOF-1 is stored in IRMOF-1.cssr. There are 424 atoms in this unit cell, which is a cube of dimension 25.832 Angstroms. The second column in the .cssr is the atom name; the following three columns give fractional coordinates of these atoms in the a, b, and c crystal lattice directions, respectively.

:honeybee: The 'henry.cu' code is the CUDA code for GPUs.

:honeybee: The 'henry_serial.cc' code is the C++ code parallelized using OpenMP. See the:

#pragma omp parallel for

that parallelizes the loop.

:honeybee: To compile both codes, type make (See Makefile).

:honeybee: The Bash shell file run.sh runs the performance benchmark tests of the CUDA and OpenMP-parallelized codes by varying the number of parallel elements (GPU threads per block / OpenMP threads) and stores the run times in .csv files. It also calls the Python script plot_performance.py to plot the results.