{"id":479,"date":"2025-03-25T12:21:19","date_gmt":"2025-03-25T11:21:19","guid":{"rendered":"https:\/\/people.unipi.it\/valerio_giusti\/?page_id=479"},"modified":"2025-08-23T18:05:33","modified_gmt":"2025-08-23T16:05:33","slug":"hpc-monte-carlo-openmc","status":"publish","type":"page","link":"https:\/\/people.unipi.it\/valerio_giusti\/research\/hpc-monte-carlo-openmc\/","title":{"rendered":"HPC Monte Carlo &#8211; OpenMC"},"content":{"rendered":"\n<h2 class=\"wp-block-heading has-background\" style=\"background-color:#e7e7e7;font-size:18px\"><strong>Disclaimer:<\/strong> I am not an expert! What follows worked fine for me, but take it carefully, as it might require customization for your specific purposes.<\/h2>\n\n\n\n<p>Below are the instructions for creating a Singularity\/Apptainer container to run the Monte Carlo code OpenMC on an HPC cluster.<\/p>\n\n\n\n<p>Create a file &#8216;debian_openmc_mpich-sl.def&#8217; containing the following:<\/p>\n\n\n\n<pre class=\"wp-block-code has-background\" style=\"background-color:#e7e7e7;font-size:12px\"><code>BootStrap: docker\nFrom: debian:12\n%environment\n    # Point to MPI binaries, libraries, man pages\n    export MPI_DIR=\/opt\/mpi\n    export MPI_ROOT=\/opt\/mpi\n    export PATH=\"$MPI_DIR\/bin:$PATH\"\n    export LD_LIBRARY_PATH=\"$MPI_DIR\/lib:$LD_LIBRARY_PATH\"\n    export MANPATH=\"$MPI_DIR\/share\/man:$MANPATH\"\n    export OPENMC_CROSS_SECTIONS=\/<strong>your-data-library-path<\/strong>\/cross_sections.xml\n    export DEBIAN_FRONTEND=noninteractive\n%post\n    apt-get update -y\n    apt-get install wget git bash gcc gfortran g++ make file bzip2 -y\n    apt-get install dpkg-dev cmake libc6 binutils libx11-dev libxpm-dev \\\n        libxft-dev libxext-dev python3 python3-pip python3-dev python3-numpy \\\n        libssl-dev libgsl0-dev libtiff-dev libhdf5-dev -y \n    echo \"Installing MPI\"\n    export MPI_DIR=\/opt\/mpi\n    export MPI_ROOT=\/opt\/mpi\n    export MPI_VERSION=3.3.1\n    export MPI_URL=\"https:\/\/www.mpich.org\/static\/downloads\/3.3.1\/mpich-$MPI_VERSION.tar.gz\"\n    mkdir -p \/tmp\/mpi\n    mkdir -p \/opt\n    # Download\n    cd \/tmp\/mpi &amp;&amp; wget -O mpich-$MPI_VERSION.tar.gz $MPI_URL &amp;&amp; tar -xzf mpich-$MPI_VERSION.tar.gz\n    # Compile and install\n    export FFLAGS=\"-w -fallow-argument-mismatch -O2\"\n    cd \/tmp\/mpi\/mpich-$MPI_VERSION &amp;&amp; .\/configure --prefix=$MPI_DIR -\u2013enable-shared &amp;&amp; make -j$(nproc) install\n    # Set env variables so we can compile our application\n    export PATH=$MPI_DIR\/bin:$PATH\n    export LD_LIBRARY_PATH=$MPI_DIR\/lib:$LD_LIBRARY_PATH\n    cd\n    echo \"Installing OpenMC\"\n    git clone --recurse-submodules https:\/\/github.com\/openmc-dev\/openmc.git\n    cd openmc\n    git checkout master\n    mkdir build &amp;&amp; cd build\n    cmake -DHDF5_PREFER_PARALLEL=on -DOPENMC_USE_MPI=on ..\n    make\n    make install\n    cd ..\n    python3 -m pip install mpi4py --break-system-packages\n    python3 -m pip install . --break-system-packages\n%labels\n    Author Valerio Giusti\n    Version v0.1.1\n%help\n    Debian 12 container to run OpenMC on HPC.<\/code><\/pre>\n\n\n\n<p>Shell command to create the container:<\/p>\n\n\n\n<pre class=\"wp-block-code has-background\" style=\"background-color:#e7e7e7;font-size:12px\"><code>singularity build debian_openmc_mpich-sl.sif debian_openmc_mpich-sl.def<\/code><\/pre>\n\n\n\n<p>Example of PBS scripts to run criticality or burnup calculations:<\/p>\n\n\n\n<pre class=\"wp-block-code has-background\" style=\"background-color:#e7e7e7;font-size:12px\"><code>#!\/usr\/bin\/env bash\n#PBS -N output \n#PBS -j oe\n#PBS -l select=4:ncpus=40:mpiprocs=1\n\nmodule load gnu8\/8.3.0 mpich\/3.3.1 singularity\n\n# Uncomment next command for criticality calculations\n# mpirun singularity exec --bind \/<strong>your-data-library-path<\/strong>\/ \\\n#        debian_openmc_mpich-sl.sif openmc\n\n# Uncomment next command for burnup calculations\n# mpirun singularity exec --bind \/<strong>your-data-library-path<\/strong>\/ \\\n#        debian_openmc_mpich-sl.sif python3 -m mpi4py python-input-script.py\n<\/code><\/pre>\n\n\n\n<p>Remarks<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Versions of OpenMC released after the third quarter of 2025 will require a Python version greater than 3.11. Then, a Debian version greater than 3.12 is necessary.<\/li>\n\n\n\n<li>mpi4py: \u201cOn Ubuntu\/Debian systems, the mpi4py package uses Open MPI. To use MPICH, install the libmpich-dev and python3-dev packages (and any other required development tools). Afterward, install mpi4py from sources using pip.\u201d It is not necessary to install libmpich-dev if, as in our case, mpich is compiled from the source.<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Disclaimer: I am not an expert! What follows worked fine for me, but take it carefully, as it might require&hellip;<\/p>\n<p><a class=\"btn btn-dark btn-sm unipi-read-more-link\" href=\"https:\/\/people.unipi.it\/valerio_giusti\/research\/hpc-monte-carlo-openmc\/\">Read More&#8230;<\/a><\/p>\n","protected":false},"author":468,"featured_media":0,"parent":10,"menu_order":0,"comment_status":"open","ping_status":"closed","template":"page-templates\/fullwidthpage.php","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-479","page","type-page","status-publish","hentry"],"acf":[],"featured_image_src":null,"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>HPC Monte Carlo - OpenMC - Valerio Giusti<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/people.unipi.it\/valerio_giusti\/research\/hpc-monte-carlo-openmc\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"HPC Monte Carlo - OpenMC - Valerio Giusti\" \/>\n<meta property=\"og:description\" content=\"Disclaimer: I am not an expert! What follows worked fine for me, but take it carefully, as it might require&hellip;Read More...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/people.unipi.it\/valerio_giusti\/research\/hpc-monte-carlo-openmc\/\" \/>\n<meta property=\"og:site_name\" content=\"Valerio Giusti\" \/>\n<meta property=\"article:modified_time\" content=\"2025-08-23T16:05:33+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/people.unipi.it\\\/valerio_giusti\\\/research\\\/hpc-monte-carlo-openmc\\\/\",\"url\":\"https:\\\/\\\/people.unipi.it\\\/valerio_giusti\\\/research\\\/hpc-monte-carlo-openmc\\\/\",\"name\":\"HPC Monte Carlo - OpenMC - Valerio Giusti\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/people.unipi.it\\\/valerio_giusti\\\/#website\"},\"datePublished\":\"2025-03-25T11:21:19+00:00\",\"dateModified\":\"2025-08-23T16:05:33+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/people.unipi.it\\\/valerio_giusti\\\/research\\\/hpc-monte-carlo-openmc\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/people.unipi.it\\\/valerio_giusti\\\/research\\\/hpc-monte-carlo-openmc\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/people.unipi.it\\\/valerio_giusti\\\/research\\\/hpc-monte-carlo-openmc\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/people.unipi.it\\\/valerio_giusti\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Research\",\"item\":\"https:\\\/\\\/people.unipi.it\\\/valerio_giusti\\\/research\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"HPC Monte Carlo &#8211; OpenMC\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/people.unipi.it\\\/valerio_giusti\\\/#website\",\"url\":\"https:\\\/\\\/people.unipi.it\\\/valerio_giusti\\\/\",\"name\":\"Valerio Giusti\",\"description\":\"Associate Professor\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/people.unipi.it\\\/valerio_giusti\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"HPC Monte Carlo - OpenMC - Valerio Giusti","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/people.unipi.it\/valerio_giusti\/research\/hpc-monte-carlo-openmc\/","og_locale":"en_US","og_type":"article","og_title":"HPC Monte Carlo - OpenMC - Valerio Giusti","og_description":"Disclaimer: I am not an expert! What follows worked fine for me, but take it carefully, as it might require&hellip;Read More...","og_url":"https:\/\/people.unipi.it\/valerio_giusti\/research\/hpc-monte-carlo-openmc\/","og_site_name":"Valerio Giusti","article_modified_time":"2025-08-23T16:05:33+00:00","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/people.unipi.it\/valerio_giusti\/research\/hpc-monte-carlo-openmc\/","url":"https:\/\/people.unipi.it\/valerio_giusti\/research\/hpc-monte-carlo-openmc\/","name":"HPC Monte Carlo - OpenMC - Valerio Giusti","isPartOf":{"@id":"https:\/\/people.unipi.it\/valerio_giusti\/#website"},"datePublished":"2025-03-25T11:21:19+00:00","dateModified":"2025-08-23T16:05:33+00:00","breadcrumb":{"@id":"https:\/\/people.unipi.it\/valerio_giusti\/research\/hpc-monte-carlo-openmc\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/people.unipi.it\/valerio_giusti\/research\/hpc-monte-carlo-openmc\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/people.unipi.it\/valerio_giusti\/research\/hpc-monte-carlo-openmc\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/people.unipi.it\/valerio_giusti\/"},{"@type":"ListItem","position":2,"name":"Research","item":"https:\/\/people.unipi.it\/valerio_giusti\/research\/"},{"@type":"ListItem","position":3,"name":"HPC Monte Carlo &#8211; OpenMC"}]},{"@type":"WebSite","@id":"https:\/\/people.unipi.it\/valerio_giusti\/#website","url":"https:\/\/people.unipi.it\/valerio_giusti\/","name":"Valerio Giusti","description":"Associate Professor","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/people.unipi.it\/valerio_giusti\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}},"_links":{"self":[{"href":"https:\/\/people.unipi.it\/valerio_giusti\/wp-json\/wp\/v2\/pages\/479","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/people.unipi.it\/valerio_giusti\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/people.unipi.it\/valerio_giusti\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/people.unipi.it\/valerio_giusti\/wp-json\/wp\/v2\/users\/468"}],"replies":[{"embeddable":true,"href":"https:\/\/people.unipi.it\/valerio_giusti\/wp-json\/wp\/v2\/comments?post=479"}],"version-history":[{"count":18,"href":"https:\/\/people.unipi.it\/valerio_giusti\/wp-json\/wp\/v2\/pages\/479\/revisions"}],"predecessor-version":[{"id":617,"href":"https:\/\/people.unipi.it\/valerio_giusti\/wp-json\/wp\/v2\/pages\/479\/revisions\/617"}],"up":[{"embeddable":true,"href":"https:\/\/people.unipi.it\/valerio_giusti\/wp-json\/wp\/v2\/pages\/10"}],"wp:attachment":[{"href":"https:\/\/people.unipi.it\/valerio_giusti\/wp-json\/wp\/v2\/media?parent=479"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}