{
    "componentChunkName": "component---src-templates-markdown-doc-tsx",
    "path": "/2025.1.3/misc/cheese_workshop",
    "result": {"data":{"mdx":{"id":"b736b86c-7b50-5d04-9d49-26379fc63ec1","frontmatter":{"title":"Mesh Generation","images":[{"publicURL":"/static/419bb5e3725a59e888890d81571de787/image_a.png","childImageSharp":{"gatsbyImageData":{"layout":"constrained","backgroundColor":"#f8f8f8","images":{"fallback":{"src":"/static/419bb5e3725a59e888890d81571de787/95b80/image_a.png","srcSet":"/static/419bb5e3725a59e888890d81571de787/ab470/image_a.png 113w,\n/static/419bb5e3725a59e888890d81571de787/67743/image_a.png 226w,\n/static/419bb5e3725a59e888890d81571de787/95b80/image_a.png 452w","sizes":"(min-width: 452px) 452px, 100vw"},"sources":[{"srcSet":"/static/419bb5e3725a59e888890d81571de787/42406/image_a.webp 113w,\n/static/419bb5e3725a59e888890d81571de787/8cd7f/image_a.webp 226w,\n/static/419bb5e3725a59e888890d81571de787/dccb7/image_a.webp 452w","type":"image/webp","sizes":"(min-width: 452px) 452px, 100vw"}]},"width":600,"height":586.7256637168142}}},{"publicURL":"/static/a14b19ebb2db33b2bf04c1f62e2aa27d/image_b.png","childImageSharp":{"gatsbyImageData":{"layout":"constrained","backgroundColor":"#f8f8f8","images":{"fallback":{"src":"/static/a14b19ebb2db33b2bf04c1f62e2aa27d/95b80/image_b.png","srcSet":"/static/a14b19ebb2db33b2bf04c1f62e2aa27d/ab470/image_b.png 113w,\n/static/a14b19ebb2db33b2bf04c1f62e2aa27d/67743/image_b.png 226w,\n/static/a14b19ebb2db33b2bf04c1f62e2aa27d/95b80/image_b.png 452w","sizes":"(min-width: 452px) 452px, 100vw"},"sources":[{"srcSet":"/static/a14b19ebb2db33b2bf04c1f62e2aa27d/42406/image_b.webp 113w,\n/static/a14b19ebb2db33b2bf04c1f62e2aa27d/8cd7f/image_b.webp 226w,\n/static/a14b19ebb2db33b2bf04c1f62e2aa27d/dccb7/image_b.webp 452w","type":"image/webp","sizes":"(min-width: 452px) 452px, 100vw"}]},"width":600,"height":586.7256637168142}}},{"publicURL":"/static/799d3e8c2656adb5ced49b5f0eee8cc0/image_c.png","childImageSharp":{"gatsbyImageData":{"layout":"constrained","backgroundColor":"#e8e8e8","images":{"fallback":{"src":"/static/799d3e8c2656adb5ced49b5f0eee8cc0/95b80/image_c.png","srcSet":"/static/799d3e8c2656adb5ced49b5f0eee8cc0/ab470/image_c.png 113w,\n/static/799d3e8c2656adb5ced49b5f0eee8cc0/67743/image_c.png 226w,\n/static/799d3e8c2656adb5ced49b5f0eee8cc0/95b80/image_c.png 452w","sizes":"(min-width: 452px) 452px, 100vw"},"sources":[{"srcSet":"/static/799d3e8c2656adb5ced49b5f0eee8cc0/42406/image_c.webp 113w,\n/static/799d3e8c2656adb5ced49b5f0eee8cc0/8cd7f/image_c.webp 226w,\n/static/799d3e8c2656adb5ced49b5f0eee8cc0/dccb7/image_c.webp 452w","type":"image/webp","sizes":"(min-width: 452px) 452px, 100vw"}]},"width":600,"height":586.7256637168142}}},{"publicURL":"/static/5fd260a7c5f7d694013ee462679695fc/image_d.png","childImageSharp":{"gatsbyImageData":{"layout":"constrained","backgroundColor":"#e8e8e8","images":{"fallback":{"src":"/static/5fd260a7c5f7d694013ee462679695fc/95b80/image_d.png","srcSet":"/static/5fd260a7c5f7d694013ee462679695fc/ab470/image_d.png 113w,\n/static/5fd260a7c5f7d694013ee462679695fc/67743/image_d.png 226w,\n/static/5fd260a7c5f7d694013ee462679695fc/95b80/image_d.png 452w","sizes":"(min-width: 452px) 452px, 100vw"},"sources":[{"srcSet":"/static/5fd260a7c5f7d694013ee462679695fc/42406/image_d.webp 113w,\n/static/5fd260a7c5f7d694013ee462679695fc/8cd7f/image_d.webp 226w,\n/static/5fd260a7c5f7d694013ee462679695fc/dccb7/image_d.webp 452w","type":"image/webp","sizes":"(min-width: 452px) 452px, 100vw"}]},"width":600,"height":586.7256637168142}}},{"publicURL":"/static/ad87e227279ac7bfe06c1e3757344285/image_e.png","childImageSharp":{"gatsbyImageData":{"layout":"constrained","backgroundColor":"#f8f8f8","images":{"fallback":{"src":"/static/ad87e227279ac7bfe06c1e3757344285/95b80/image_e.png","srcSet":"/static/ad87e227279ac7bfe06c1e3757344285/ab470/image_e.png 113w,\n/static/ad87e227279ac7bfe06c1e3757344285/67743/image_e.png 226w,\n/static/ad87e227279ac7bfe06c1e3757344285/95b80/image_e.png 452w","sizes":"(min-width: 452px) 452px, 100vw"},"sources":[{"srcSet":"/static/ad87e227279ac7bfe06c1e3757344285/42406/image_e.webp 113w,\n/static/ad87e227279ac7bfe06c1e3757344285/8cd7f/image_e.webp 226w,\n/static/ad87e227279ac7bfe06c1e3757344285/dccb7/image_e.webp 452w","type":"image/webp","sizes":"(min-width: 452px) 452px, 100vw"}]},"width":600,"height":586.7256637168142}}}]},"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 = {\n  \"title\": \"Mesh Generation\",\n  \"images\": [\"image_a.png\", \"image_b.png\", \"image_c.png\", \"image_d.png\", \"image_e.png\"]\n};\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, \"CHEESE Advanced Training on HPC for Computational Seismology\"), mdx(\"p\", null, mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"https://cheese-coe.eu/events/cheese-advanced-training-hpc-computational-seismology\"\n  }, \"https://cheese-coe.eu/events/cheese-advanced-training-hpc-computational-seismology\")), mdx(\"p\", null, \"The Salvus tutorial happens October 21rd from 9:00 to 12:00 Central European Time (CET).\"), mdx(\"h2\", null, \"Opening a Jupyter Notebook for the Salvus tutorial\"), mdx(\"p\", null, \"A prepared installation has been set up on the training cluster of the HLRS\\nso the only thing that remains to be done is to launch it and connect it to\\nyour local browser.\"), mdx(\"p\", null, \"Your SSH connection should already be set up from all the other tutorials so\\nthis should be quick.\"), mdx(Message, {\n    color: \"violet\",\n    header: \"Read Carefully\",\n    content: mdx(\"div\", null, mdx(\"p\", null, \"It takes two minutes to read the instructions.\"), mdx(\"p\", null, mdx(\"b\", null, \"Every participant must use a different port number\"), \", otherwise this will not work.\")),\n    mdxType: \"Message\"\n  }), mdx(\"h3\", null, \"Linux/OSX/WSL\"), mdx(\"p\", null, \"Open a shell, copy the following line (replace \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"scaXXXXX\"), \" with your actual\\nuser name!) and hit enter.\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-shell\"\n  }, \"USER=scaXXXXX; ssh -L 33${USER:(-3)}:localhost:33${USER:(-3)} -t ${USER}@training.hlrs.de \\\"bash /shared/cheese/salvus/config/launch_salvus.sh 33${USER:(-3)}\\\"\\n\")), mdx(\"p\", null, \"This will take around 30 seconds and at the end it will present you with a\\nlink like \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"https://localhost:XXXXX/?token=...\"), \". Open this link in your\\nbrowser and you are all set.\"), mdx(\"h3\", null, \"Windows\"), mdx(\"p\", null, \"This is a bit more complicated, if possible we'd recommend to use the WSL on\\nWindows and do what is written above.\"), mdx(Message, {\n    color: \"orange\",\n    header: \"Port Number\",\n    content: mdx(\"p\", null, \"Some command here will contain 33XXX - please replace the XXX with the last three digits of your username. So if it is sca59765 please use 33765.\"),\n    mdxType: \"Message\"\n  }), mdx(\"p\", null, \"But PuTTY can also be made to work (most things should already be set up from\\nthe previous tutorials):\"), mdx(\"h5\", null, \"1. Hostname + port\"), mdx(props.images.Img1, null), mdx(\"h5\", null, \"2. Username\"), mdx(props.images.Img2, null), mdx(\"h5\", null, \"3. Remote command\"), mdx(\"p\", null, \"You can either enter this here (it will then be run automatically upon\\nconnecting) or just run it once the remote connection opened:\"), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Replace the \", mdx(\"inlineCode\", {\n    parentName: \"strong\"\n  }, \"33XXX\"), \" as written above.\")), mdx(props.images.Img3, null), mdx(\"h5\", null, \"4. Key\"), mdx(\"p\", null, \"This should already be set up from the previous tutorials\"), mdx(props.images.Img4, null), mdx(\"h5\", null, \"5. Tunnels\"), mdx(\"p\", null, \"Add \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"33XXX\"), \" as the source port and \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"localhost:33XXX\"), \" as the destination and\\nthen press \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"Add\"), \".\"), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Replace the \", mdx(\"inlineCode\", {\n    parentName: \"strong\"\n  }, \"33XXX\"), \" as written above.\")), mdx(props.images.Img5, null), mdx(\"h5\", null, \"6. Save and Open Connection\"), mdx(\"p\", null, \"Save the session (to not have to re-enter everything if something is wrong)\\nand click \\\"Open\\\".\"), mdx(\"p\", null, \"This will take around 30 seconds and at the end it will present you with a\\nlink like \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"https://localhost:XXXXX/?token=...\"), \". Open this link in your\\nbrowser and you are all set.\"), mdx(\"h3\", null, \"What is happening here?\"), mdx(\"p\", null, \"It opens an SSH connection and directly executes the \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"launch_salvus.sh\"), \"\\nscript. Additionally it forwards a local port to the same port number on the\\nremote machine.\"), mdx(\"p\", null, \"Upon execution the script prepares your environment on the training cluster\\nfor Salvus, launches an interactive job for the duration of the tutorial,\\ntunnels the same port from the compute to the login node, and finally\\nlaunches a jupyter notebook server on that same port.\"), mdx(\"p\", null, \"All the tunneling really only serves the purpose to be able to access the\\njupyter notebook server from your local browser.\"), mdx(\"h3\", null, \"tmux\"), mdx(\"p\", null, \"The script internally runs everything in tmux - thus if your connection drops\\nfor some reason, just rerun the script and will detect that tmux runs and\\nonly keep the tunnel open. Thus you should be able to reconnect to the\\njupyter notebook server with your browser.\"));\n}\n;\nMDXContent.isMDXComponent = true;"},"site":{"siteMetadata":{"salvusDocVersions":{"current":"2026.5.0"}}}},"pageContext":{"id":"b736b86c-7b50-5d04-9d49-26379fc63ec1"}},
    "staticQueryHashes": ["1756726491","1865182279","3419370438","3597190305","4112489441","519097329"]}