{
    "componentChunkName": "component---src-templates-markdown-doc-tsx",
    "path": "/2025.1.3/installation/mpi",
    "result": {"data":{"mdx":{"id":"9b5efbef-2f8e-5933-a73d-1f824b3db744","frontmatter":{"title":"","images":null},"body":"var _excluded = [\"components\"];\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n/* @jsxRuntime classic */\n/* @jsx mdx */\n\nvar _frontmatter = {};\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n    props = _objectWithoutProperties(_ref, _excluded);\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"h1\", null, \"MPI\"), mdx(\"p\", null, \"SalvusCompute requires MPI. Our distributions come with the required MPI\\nbinaries and shared libraries and we recommend to use these on small single\\nnode workstations. \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"strong\"\n  }, \"local\"), \" and \", mdx(\"inlineCode\", {\n    parentName: \"strong\"\n  }, \"ssh\"), \" site types should use the\\nMPI offered by the Mondaic Downloader. Salvus\", mdx(\"em\", {\n    parentName: \"strong\"\n  }, \"Flow\"), \" is aware of the folder\\nstructure the Downloader creates and no further configuration is necessary!\")), mdx(\"p\", null, \"Large HPC clusters on the other hand tend to have their own custom MPI\\ndistributions. Our packages will dynamically link in any MPI implementation\\nfollowing the \", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"https://www.mpich.org/abi/\"\n  }, \"MPI ABI Compatibility Initiative\"), \", of\\nwhich most MPI vendors are a part of.\"), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"The only widely used MPI implementation that cannot be used with Salvus is\\nOpenMPI.\"), \" OpenMPI is not ABI compatible with Salvus. Most clusters should\\noffer an alternative.\"), mdx(\"p\", null, \"For this to work, two manual steps might be required:\"), mdx(\"ol\", null, mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"Loading an ABI compatible MPI module in the site's \", mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"SalvusFlow\"), \" config, e.g.\\n\", mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"modules_to_load = [\\\"xxx-mpich-abi\\\"]\")), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"The loaded module should already set the correct \", mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"$LD_LIBRARY_PATH\"), \". If it\\ndoes not do that, manually set it, again in the \", mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"SalvusFlow\"), \" site config:\")), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-toml\"\n  }, \"[[sites.some_site.environment_variable]]\\n    name = \\\"LD_LIBRARY_PATH\\\"\\n    value = \\\"/path/to/some/lib/dir\\\"\\n\\n\")), mdx(\"p\", null, \"The value/path has to be the library folder containing the \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"libmpi.so.12\"), \"\\nshared library.\"), mdx(\"p\", null, \"Most clusters offer Intel's MPI distribution, and this generally works well with\\nSalvus.\"));\n}\n;\nMDXContent.isMDXComponent = true;"},"site":{"siteMetadata":{"salvusDocVersions":{"current":"2026.5.0"}}}},"pageContext":{"id":"9b5efbef-2f8e-5933-a73d-1f824b3db744"}},
    "staticQueryHashes": ["1756726491","1865182279","3419370438","3597190305","4112489441","519097329"]}