1"use strict";(self.webpackChunksupportkc_new=self.webpackChunksupportkc_new||[]).push([[485],{3905:(e,t,n)=>{n.d(t,{Zo:()=>s,kt:()=>k});var a=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function l(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n,a,r={},o=Object.keys(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var m=a.createContext({}),p=function(e){var t=a.useContext(m),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},s=function(e){var t=p(e.components);return a.createElement(m.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},c=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,m=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),u=p(n),c=r,k=u["".concat(m,".").concat(c)]||u[c]||d[c]||o;return n?a.createElement(k,l(l({ref:t},s),{},{components:n})):a.createElement(k,l({ref:t},s))}));function k(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,l=new Array(o);l[0]=c;var i={};for(var m in t)hasOwnProperty.call(t,m)&&(i[m]=t[m]);i.originalType=e,i[u]="string"==typeof e?e:r,l[1]=i;for(var p=2;p<o;p++)l[p]=n[p];return a.createElement.apply(null,l)}return a.createElement.apply(null,n)}c.displayName="MDXCreateElement"},42738:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>m,contentTitle:()=>l,default:()=>d,frontMatter:()=>o,metadata:()=>i,toc:()=>p});var a=n(87462),r=(n(67294),n(3905));const o={sidebar_position:8,sidebar_label:"Software environments"},l="MareNostrum 5",i={unversionedId:"MareNostrum5/environment",id:"MareNostrum5/environment",title:"MareNostrum 5",description:"Software environments",source:"@site/docs/MareNostrum5/environment.md",sourceDirName:"MareNostrum5",slug:"/MareNostrum5/environment",permalink:"/supportkc/docs/MareNostrum5/environment",draft:!1,tags:[],version:"current",sidebarPosition:8,frontMatter:{sidebar_position:8,sidebar_label:"Software environments"},sidebar:"tutorialSidebar",previous:{title:"English",permalink:"/supportkc/docs/MareNostrum5/Installing packages/R/english"},next:{title:"Package Managers",permalink:"/supportkc/docs/MareNostrum5/Package Managers/intro"}},m={},p=[{value:"Software environments",id:"software-environments",level:2},{value:"Modules (modulefiles)",id:"modules-modulefiles",level:3},{value:"Modules usage",id:"modules-usage",level:4},{value:"Default Modules",id:"default-modules",level:4},{value:"Compiler Environments",id:"compiler-environments",level:2}],s={toc:p},u="wrapper";function d(e){let{components:t,...n}=e;return(0,r.kt)(u,(0,a.Z)({},s,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"marenostrum-5"},"MareNostrum 5"),(0,r.kt)("h2",{id:"software-environments"},"Software environments"),(0,r.kt)("p",null,"All pre-installed software on the cluster is located at ",(0,r.kt)("inlineCode",{parentName:"p"},"/apps"),". Don't hesitate to\n",(0,r.kt)("a",{parentName:"p",href:"/FAQ#howwhen-may-i-contact-support-team"},"contact us")," for additional software requirements;\nwe will gladly assist you with the installation process."),(0,r.kt)("h3",{id:"modules-modulefiles"},"Modules (modulefiles)"),(0,r.kt)("p",null,"The Environment Modules package (",(0,r.kt)("a",{parentName:"p",href:"http://modules.sourceforge.net"},"http://modules.sourceforge.net"),") enables the dynamic\nconfiguration of a user's environment through ",(0,r.kt)("em",{parentName:"p"},"modulefiles"),". Each module file incorporates\nthe basic settings to configure the shell for an application or compilation."),(0,r.kt)("p",null,"Modules can be loaded and unloaded seamlessly in various supported shells, including ",(0,r.kt)("em",{parentName:"p"},"bash"),", ",(0,r.kt)("em",{parentName:"p"},"ksh"),", ",(0,r.kt)("em",{parentName:"p"},"zsh"),",\n",(0,r.kt)("em",{parentName:"p"},"sh"),", ",(0,r.kt)("em",{parentName:"p"},"csh"),", ",(0,r.kt)("em",{parentName:"p"},"tcsh"),", and scripting languages like Perl."),(0,r.kt)("p",null,"Pre-installed modulefiles are currently categorized
1into four groups:"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Group"),(0,r.kt)("th",{parentName:"tr",align:null},"Description"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("em",{parentName:"td"},"applications & tools")),(0,r.kt)("td",{parentName:"tr",align:null},"High-Performance Computing programs (e.g., GROMACS, ...) and useful tools that can be used at any time (e.g. php, perl, ...)")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("em",{parentName:"td"},"compilers")),(0,r.kt)("td",{parentName:"tr",align:null},"Available compiler suites for the system (e.g. intel, gcc, ...)")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("em",{parentName:"td"},"environment")),(0,r.kt)("td",{parentName:"tr",align:null},"Modulefiles dedicated to preparing the environment, such as obtaining necessary variables for using openmpi to compile or run programs (e.g. Python, R, nvidia-hpc-sdk, ...)")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("em",{parentName:"td"},"libraries")),(0,r.kt)("td",{parentName:"tr",align:null},"Typically loaded at compilation time, these modulefiles set the correct compiler and linker flags for libraries (e.g. FFTW, LAPACK, ...)")))),(0,r.kt)("h4",{id:"modules-usage"},"Modules usage"),(0,r.kt)("p",null,"There are two ways to invoke modules:"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"By ",(0,r.kt)("inlineCode",{parentName:"li"},"name")),(0,r.kt)("li",{parentName:"ol"},"By ",(0,r.kt)("inlineCode",{parentName:"li"},"name/version"))),(0,r.kt)("p",null,"When invoked by ",(0,r.kt)("inlineCode",{parentName:"p"},"name")," alone, the default module version is loaded, typically the most recent stable and recommended\nversion or the only version available."),(0,r.kt)("p",null,"On the other hand, invoking by ",(0,r.kt)("inlineCode",{parentName:"p"},"name/version")," loads the specified version of the application. At present, both the following commands load the same module:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"module load intel\nmodule load intel/2023.2.0\n")),(0,r.kt)("p",null,"You can execute ",(0,r.kt)("inlineCode",{parentName:"p"},"module help")," at any time to review the command's usage and options, or refer to the module(1)\nmanpage for more detailed information."),(0,r.kt)("p",null,"The commonly used commands for modules include the following:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Display all modules available for the user to load:"),(0,r.kt)("pre",{parentName:"li"},(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"module avail\n"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Load one or more modules:"),(0,r.kt)("pre",{parentName:"li"},(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"module load {module1 module2 ... moduleN}\n")),(0,r.kt)("admonition",{parentName:"li",title:"REMARK",type:"caution"},(0,r.kt)("ul",{parentName:"admonition"},(0,r.kt)("li",{parentName:"ul"},"It will set the necessary environment variables for the selected modules.")))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Display all loaded modules:"),(0,r.kt)("pre",{parentName:"li"},(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"module list\n"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Remove/unload all loaded modules:"),(0,r.kt)("pre",{parentName:"li"},(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"module purge\n"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Unload one or more modules: "),(0,r.kt)("pre",{parentName:"li"},(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"module unload {module1 module2 ... moduleN}\n")),(0,r.kt)("admonition",{parentName:"li",title:"REMARK",type:"caution"},(0,r.kt)("ul",{parentName:"admonition"},(0,r.kt)("li",{parentName:"ul"},"It will undo any environment modifications applied during the loading of the chosen modules.")))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Swap out a currently loaded module (module1) with another one (module2):"),(0,r.kt)("pre",{parentName:"li"},(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"module switch {module1} {module2}\n")),(0,r.kt)("admonition",{parentName:"li",type:"note"},(0,r.kt)("ul",{parentName:"admonition"},(0,r.kt)("li",{parentName:"ul"},"This can be handy, for instance, when testing multiple versions of the same software."))))),(0,r.kt)("h4",{id:"default-modules"},"Default Modules"),(0,r.kt)("p",null,"To improve your experience, a set of default modules is automatically loaded when you log into a cluster via SSH or connect using SCP or rsync. These modules provide a solid starting point for compiling your applications."),(0,r.kt)("p",null,"If you prefer to prevent these modules from being loaded during login or when connecting via SCP or rsync, you can disable this behavior b
1y running the following command on any of the login nodes of the machine:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"touch ${HOME}/.avoid_load_def_modules.${BSC_MACHINE}\n")),(0,r.kt)("p",null,"This command creates a file in your home directory with the name ",(0,r.kt)("inlineCode",{parentName:"p"},".avoid_load_def_modules.mn5"),". When you connect to a cluster, if this file is detected in your home directory, the default modules will not be loaded automatically."),(0,r.kt)("h2",{id:"compiler-environments"},"Compiler Environments"),(0,r.kt)("p",null,"We also provide several ",(0,r.kt)("em",{parentName:"p"},"compiler environments"),". These environments provide a bundle of modules which we can guarantee are compatible between them, and are ideal for those wanting to compile their own software. Modules you can find within these environments include those most commonly required such as ",(0,r.kt)("em",{parentName:"p"},"cmake"),", ",(0,r.kt)("em",{parentName:"p"},"netcdf"),", ",(0,r.kt)("em",{parentName:"p"},"scalapack"),", or ",(0,r.kt)("em",{parentName:"p"},"fftw"),"."),(0,r.kt)("p",null,"As of this writing, available compiler environments for the GPP partition are:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"compenv-gpp/intel2023-impi"),(0,r.kt)("li",{parentName:"ul"},"compenv-gpp/intel2023-ompi"),(0,r.kt)("li",{parentName:"ul"},"compenv-gpp/gnu12.3.0-ompi")),(0,r.kt)("p",null,"While for the ACC partion."),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"compenv-acc/nvhpx23.11"),(0,r.kt)("li",{parentName:"ul"},"compenv-acc/gnu13.2.0-ompi")),(0,r.kt)("p",null,"Be aware that libraries are not automatically linked, but all relevant paths will be present on LD_LIBRARY_PATH and LIBRARY_PATH."))}d.isMDXComponent=!0}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.