{
    "componentChunkName": "component---src-templates-markdown-doc-tsx",
    "path": "/2025.1.3/installation/mondaic_downloader",
    "result": {"data":{"mdx":{"id":"0979fc2f-ec58-530f-ab28-771bef4b3c4a","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, \"Mondaic Downloader\"), mdx(\"p\", null, \"Mondaic distributes its software through a small utility program, called the\\nMondaic Downloader. To invoke it, simply execute, on Linux and macOS:\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-shell\"\n  }, \"bash -c \\\"$(curl -sSL https://get.mondaic.com)\\\"\\n\")), mdx(\"p\", null, \"or on Windows execute\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-shell\"\n  }, \"powershell -command \\\"iex (New-Object System.Net.WebClient).DownloadString('https://get.mondaic.com/win')\\\"\\n\")), mdx(\"p\", null, \"in any terminal prompt. In case you are hesitant about directly running an\\nunknown script via piping into bash, that script and how to manually do what\\nit does, is explained at the \", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"#manually-invoke-the-mondaic-downloader\"\n  }, \"end of this\\npage\"), \".\"), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"You need a Mondaic account to use the Downloader. If you do not have one yet\\nor forgot your credentials, please contact us.\")), mdx(\"h2\", null, \"Where to Run the Downloader\"), mdx(\"p\", null, \"The Downloader will always download things to the machine where it is run, so\\nthe general strategy is to run it on the machine where you want to install\\nthings. On dark sites without internet access we recommend to run the Downloader\\non another machine and manually copy the files.\"), mdx(\"h2\", null, \"How to Use It\"), mdx(\"p\", null, \"The Downloader will ask you a number of interactive questions. Most should be\\nself-explanatory. A few things to note:\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"If you don't have a license file yet, the Downloader will offer to create one\\nfor you.\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"You need to chose the correct \", mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"./microarchitecture\"\n  }, \"microarchitecture\"), \" of\\nyour CPU. The Downloader will autodetect the one of the machine it is run\\non. This is almost always correct. There are some cases, especially on\\nlarge HPCs, where the login nodes have a different CPU than the compute\\nnodes.\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Everything will be downloaded to a folder within the installation directory\\nthat is shown at the end. If you have been downloading a restricted release\\nplease note that everything has been installed to a separate folder.\")), mdx(Message, {\n    color: \"violet\",\n    header: \"MPI\",\n    content: mdx(\"div\", null, mdx(\"p\", null, \"Salvus uses MPI for parallelization. On laptops and smaller workstations you very likely \", mdx(\"b\", null, \"want to download the MPI\"), \" distributed via the Downloader. On big clusters that provide their own MPI you very likely\", ' ', mdx(\"b\", null, \"do not want to download the MPI\"), \" distributed by the Downloader, but to instead use a library provided by the cluster. This is very important for Salvus to work correctly. Please see the\", ' ', mdx(\"a\", {\n      href: \"./mpi\"\n    }, \"dedicated MPI page\"), \" for details.\")),\n    mdxType: \"Message\"\n  }), mdx(\"h2\", null, \"Downloadable products\"), mdx(\"p\", null, \"At a certain point it will present you with a choice of products to download.\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"Salvus\"), \": Salvus\", mdx(\"em\", {\n    parentName: \"li\"\n  }, \"Compute\"), \" binary for single precision calculations.\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"SalvusF64\"), \": Salvus\", mdx(\"em\", {\n    parentName: \"li\"\n  }, \"Compute\"), \" binary for double precision calculations. The\\nsingle precision binary is sufficient for the vast majority of applications --\\nonly use the double precision version if you need it. The double precision\\nversion is twice as slow and uses twice as much memory.\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"mpi\"), \": A pre-compiled version of MPICH. Use on laptops and local\\nworkstations, on an HPC use the cluster provided MPI.\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"SalvusPy\"), \": The Salvus Python package.\")), mdx(\"h2\", null, \"Installing the Salvus Python Packages\"), mdx(\"p\", null, \"There is no need to install \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"SalvusCompute\"), \" and the downloader will choose a\\nprecompiled binary tailored to your architecture. The only thing left to do\\nis to install the Python package. Make sure that you have succesfully setup\\nand activated the \", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"/installation/python_packages\"\n  }, \"Python environment\"), \"\\nbefore installing it with \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"pip\"), \":\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-shell\"\n  }, \"pip install ~/Salvus/python_packages/salvus-*.whl\\n\")), mdx(\"p\", null, \"If you did not use the default location for the download, you might have to\\nadjust the path above.\"), mdx(\"h3\", null, \"Running the Downloader Again and Manually Upgrading\"), mdx(\"p\", null, \"Running the downloader again will ensure all local files are updated to the\\nlatest available version. It will download anything that\\nmisses/has been updated and keep your folder structure in consistent state.\\nYou then might have to invoke \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"pip install ...\"), \" again and reinitialize any\\nsites.\"), mdx(\"h2\", null, \"Manually Invoke the Mondaic Downloader\"), mdx(\"p\", null, \"The first command on this page downloads a script located at\\n\", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"https://get.mondaic.com\"\n  }, \"https://get.mondaic.com\"), \" and executes it via bash. If you visit this page you\\ncan see that it determines your operating system, and then proceeds to\\ndownload the corresponding binary of the Mondaic Downloader.\"), mdx(\"p\", null, \"You are free and very welcome to do this manually if you prefer to. The only\\ncaveat here is that we update the Mondaic Downloader frequently without prior\\nnotice. As long as you make sure to work with an up-to-date version\\neverything will work fine.\"), mdx(\"h2\", null, \"Diagnose Problems\"), mdx(\"p\", null, \"Running the downloader with\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-shell\"\n  }, \"MONDAIC_LOG_LEVEL=salvus_downloader=debug bash -c \\\"$(curl  -sSL https://get.mondaic.com)\\\"\\n\")), mdx(\"p\", null, \"will cause a lot more diagnostic output to be printed to the console. In case\\nyou encounter any problems we recommend to run it like this. If the problem\\npersists, please send us the result of the debug output.\"));\n}\n;\nMDXContent.isMDXComponent = true;"},"site":{"siteMetadata":{"salvusDocVersions":{"current":"2026.5.0"}}}},"pageContext":{"id":"0979fc2f-ec58-530f-ab28-771bef4b3c4a"}},
    "staticQueryHashes": ["1756726491","1865182279","3419370438","3597190305","4112489441","519097329"]}