Materials Studio: Difference between revisions

From Alliance Doc
Jump to navigation Jump to search
No edit summary
No edit summary
 
(29 intermediate revisions by 6 users not shown)
Line 1: Line 1:
{{Draft}}
<languages />
Compute Canada does not have permission to install Materials Studio centrally on all clusters. However, if you do have valid Materials Studio licence(s) and software, below is a recipe will assist installing it in Compute Canada clusters in your account.
[[Category:Software]]


= Installing Materials Studio 2018 = {{Panel|title=Note|panelstyle=SideCallout|content=This recipe has been tested for Materials Studio 2018. }}
<translate>
If you have access to Materials Studio 2018, you will need two things to proceed. First, you must have the archive file that contains the installer. This file should be named <tt>MaterialsStudio2018.tgz</tt>. Second, you will must have the IP address / DNS name and the port of an already configured license server that you are going to use to connect to.
<!--T:1-->
The Alliance does not have permission to install Materials Studio centrally on all clusters. If you have a license, follow these instructions to install the application in your account. Please note that the current instructions are only valid for older standard software environments, so before beginning you will need to use a command like <code>module load StdEnv/2016.4</code> if you are using the default 2020 [[Standard_software_environments|standard software environment]].


Once you have these, upload the <tt>MaterialsStudio2018.tgz</tt> file to your /home folder on the cluster you intend to use. Then, run the command {{Command|MS_LICENSE_SERVER{{=}}<port>@<server> eb MaterialsStudio-2018-dummy-dummy.eb --sourcepath{{=}}$HOME}}


Once this command has completed, log out from the cluster and log back in. You should then be able to load the module through:
<!--T:25-->
{{Command|module load materialsstudio/2018}}
= Installing Materials Studio 2020 = {{Panel|title=Note|panelstyle=SideCallout|content=These instructions have been tested with Materials Studio 2020. }}
If you have access to Materials Studio 2020, you will need two things to proceed. First, you must have the archive file that contains the installer; this file should be named <code>BIOVIA_2020.MaterialsStudio2020.tar</code>. Second, you must have the IP address (or DNS name) and the port of an already configured license server to which you will connect.
 
<!--T:26-->
Once you have these, upload the <code>BIOVIA_2020.MaterialsStudio2020.tar</code> file to your /home folder on the cluster you intend to use. Then, run the commands
{{Command|export MS_LICENSE_SERVER{{=}}<port>@<server>}}
and
{{Command|eb MaterialsStudio-2020.eb --sourcepath{{=}}$HOME}}
 
<!--T:27-->
Once this command has completed, log out of the cluster and log back in. You should then be able to load the module with
{{Command|module load materialsstudio/2020}}
 
<!--T:28-->
In order to be able to access the license server from the compute nodes, you will need to [[Technical support|contact technical support]] so that we can configure our firewall(s) to allow the software to connect to your licence server.
 


In order to be able to access the license server from the compute nodes, you will need to [[Technical support|contact our technical support]] so that we can configure our firewall(s) to permit the software to connect to your licence server.
<!--T:2-->
= Installing Materials Studio 2018 = {{Panel|title=Note|panelstyle=SideCallout|content=These instructions have been tested with Materials Studio 2018. }}
If you have access to Materials Studio 2018, you will need two things to proceed. First, you must have the archive file that contains the installer; this file should be named <code>MaterialsStudio2018.tgz</code>. Second, you must have the IP address (or DNS name) and the port of an already configured license server to which you will connect.


== Team Installation ==
<!--T:3-->
Once you have these, upload the <code>MaterialsStudio2018.tgz</code> file to your /home folder on the cluster you intend to use. Then, run the commands
{{Command|export MS_LICENSE_SERVER{{=}}<port>@<server>}}
and
{{Command|eb /cvmfs/soft.computecanada.ca/easybuild/easyconfigs/m/MaterialsStudio/MaterialsStudio-2018.eb --disable-enforce-checksums --sourcepath{{=}}$HOME}}


If you are a PI holding the Materials Studio licence, you can install Materials Studio once so those working under you can use that installation. Normally your team's group would be <code>def-</code> followed by your login, i.e.,
<!--T:4-->
Once this command has completed, log out of the cluster and log back in. You should then be able to load the module with
{{Command|module load materialsstudio/2018}}


{{Commands|PI_GROUP{{=}}$(groups {{!}} tr ' ' '\n' {{!}} grep ^def-)|echo $PI_GROUP}}
<!--T:5-->
In order to be able to access the license server from the compute nodes, you will need to [[Technical support|contact technical support]] so that we can configure our firewall(s) to allow the software to connect to your licence server.


and normally team-shared files would be installed in your project space, e.g.,
== Team installation == <!--T:6-->
If you are a PI holding the Materials Studio licence, you can install Materials Studio once for all your group members. Since normally team work is stored in the <code>/project</code> space, determine which project directory you want to use. Suppose it is <code>~/projects/A_DIRECTORY</code>, then you will need to know these two values:


{{Commands|PI_PROJECT_DIR{{=}}$(readlink ~/projects/$PI_GROUP)|echo $PI_PROJECT_DIR}}
<!--T:7-->
1. Determine the actual path of A_DIRECTORY as follows: {{Commands|PI_PROJECT_DIR{{=}}$(readlink -f ~/projects/A_DIRECTORY)|echo $PI_PROJECT_DIR}}
2. Determine the group of A_DIRECTORY as follows: {{Commands|PI_GROUP{{=}}$(stat -c%G $PI_PROJECT_DIR)|echo $PI_GROUP}}


With these values known, install Materials Studio as follows:
<!--T:8-->
With these values known, install Materials Studio.


# Change your default group to your team's <code>def-</code> group, e.g., {{Command|newgrp $PI_GROUP}}
<!--T:9-->
# Change the default group to your team's <code>def-</code> group, e.g., {{Command|newgrp $PI_GROUP}}
# Open the permissions of your project directory so your team can access it, e.g., {{Command|chmod g+rsx $PI_PROJECT_DIR}}
# Open the permissions of your project directory so your team can access it, e.g., {{Command|chmod g+rsx $PI_PROJECT_DIR}}
# Create a install directory within such, e.g., {{Command|mkdir $PI_PROJECT_DIR/MatStudio2018}}
# Create an install directory within /project, e.g., {{Command|mkdir $PI_PROJECT_DIR/MatStudio2018}}
# Install the software, e.g., {{Command|MS_LICENSE_SERVER{{=}}<port>@<server> eb MaterialsStudio-2018-dummy-dummy.eb --installpath{{=}}$PI_PROJECT_DIR/MatStudio2018 --sourcepath{{=}}$HOME}}
# Install the software, e.g., {{Command|MS_LICENSE_SERVER{{=}}<port>@<server> eb MaterialsStudio-2018-dummy-dummy.eb --installpath{{=}}$PI_PROJECT_DIR/MatStudio2018 --sourcepath{{=}}$HOME}}


Before the software can be run, the following must be run first:
<!--T:10-->
Before the software can be run:


# Change your default group to the team <code>def-</code> group, e.g., {{Command|newgrp $PI_GROUP}}
<!--T:11-->
# Load the module information for the installed software, e.g., {{Command|module use $PI_PROJECT_DIR/MatStudio2018/modules/2017/Core/}}
# Run this command. {{Command|module use $PI_PROJECT_DIR/MatStudio2018/modules/2017/Core/}}
#* Your team members may wish to add this to their <code>~/.bashrc</code> file.
# Load the materialsstudio module, i.e., {{Command|module load materialsstudio}}
# Load the materialsstudio module, i.e., {{Command|module load materialsstudio}}


'''NOTE:''' In any scripts, etc. used, be sure to replace the above PI_GROUP and PI_PROJECT_DIR variables with what their values are.


= Examples of Slurm Job Submission Scripts =
<!--T:12-->
The examples below assume that you have installed Materials Studio 2018 according to the instructions above.  
<b>NOTE:</b> Be sure to always replace variables PI_GROUP and PI_PROJECT_DIR with their appropriate values.
 
= Examples of Slurm job submission scripts = <!--T:13-->
The following examples assume that you have installed Materials Studio 2018 according to the above instructions.  
{{File|contents=
{{File|contents=


<!--T:14-->
#!/bin/bash
#!/bin/bash
#SBATCH --nodes=1
#SBATCH --nodes=1
#SBATCH --ntasks-per-node=32
#SBATCH --ntasks-per-node=1
#SBATCH --cpus-per-task=32
#SBATCH --time=12:00:00
#SBATCH --time=12:00:00


<!--T:15-->
module load materialsstudio/2018
module load materialsstudio/2018


<!--T:16-->
# Create a list of nodes to be used for the job
# Create a list of nodes to be used for the job
DSD_MachineList="machines.LINUX"
DSD_MachineList="machines.LINUX"
Line 53: Line 90:
export DSD_MachineList
export DSD_MachineList


<!--T:17-->
# Job to run
# Job to run
RunDMol3.sh -np $SLURM_NTASKS Brucite001f
RunDMol3.sh -np $SLURM_CPUS_PER_TASK Brucite001f
}}
}}
Below is an example of a Slurm job script that relies on Materials Studio's RunCASTEP.sh command:
Below is an example of a Slurm job script that relies on Materials Studio's RunCASTEP.sh command:
{{File|contents=
{{File|contents=


<!--T:18-->
#!/bin/bash
#!/bin/bash
#SBATCH --nodes=1
#SBATCH --nodes=1
#SBATCH --ntasks=2
#SBATCH --ntasks=1
#SBATCH --cpus-per-task=2
#SBATCH --mem-per-cpu=1M
#SBATCH --mem-per-cpu=1M
#SBATCH --time=0-12:00
#SBATCH --time=0-12:00


<!--T:19-->
module load materialsstudio/2018
module load materialsstudio/2018


<!--T:20-->
DSD_MachineList="mpd.hosts"
DSD_MachineList="mpd.hosts"
slurm_hl2hl.py --format MPIHOSTLIST >$DSD_MachineList
slurm_hl2hl.py --format MPIHOSTLIST >$DSD_MachineList
export DSD_MachineList
export DSD_MachineList


RunCASTEP.sh -np $SLURM_NTASKS castepjob
<!--T:21-->
RunCASTEP.sh -np $SLURM_CPUS_PER_TASK castepjob


<!--T:22-->
if [ -f castepjob_NMR.param ]; then
if [ -f castepjob_NMR.param ]; then
   cp castepjob.check castepjob_NMR.check
   cp castepjob.check castepjob_NMR.check
   RunCASTEP.sh -np $SLURM_NTASKS castepjob_NMR
   RunCASTEP.sh -np $SLURM_CPUS_PER_TASK castepjob_NMR
fi
fi
}}
}}
= Installing earlier versions of Materials Studio = <!--T:23-->
<!--T:24-->
If you require an earlier version of Materials Studio than 2018, you will need to install in into an [[Apptainer]] container. This involves
# creating an Apptainer container with a compatible distribution of Linux installed in it;
# installing Materials Studio into that container;
# uploading the Apptainer container to your account and using it there.
#* NOTE: In order to be able to access the license server from the compute nodes, you will need to [[Technical support|contact technical support]] so that we can configure our firewall(s) to allow the software to connect to your license server.
Please be aware that you might be restricted to whole-node (single-node) jobs as the version of MPI inside the container might not be able to be used across nodes.
</translate>

Latest revision as of 21:13, 19 July 2023

Other languages:

The Alliance does not have permission to install Materials Studio centrally on all clusters. If you have a license, follow these instructions to install the application in your account. Please note that the current instructions are only valid for older standard software environments, so before beginning you will need to use a command like module load StdEnv/2016.4 if you are using the default 2020 standard software environment.


Installing Materials Studio 2020

Note

These instructions have been tested with Materials Studio 2020.


If you have access to Materials Studio 2020, you will need two things to proceed. First, you must have the archive file that contains the installer; this file should be named BIOVIA_2020.MaterialsStudio2020.tar. Second, you must have the IP address (or DNS name) and the port of an already configured license server to which you will connect.

Once you have these, upload the BIOVIA_2020.MaterialsStudio2020.tar file to your /home folder on the cluster you intend to use. Then, run the commands

Question.png
[name@server ~]$ export MS_LICENSE_SERVER=<port>@<server>

and

Question.png
[name@server ~]$ eb MaterialsStudio-2020.eb --sourcepath=$HOME

Once this command has completed, log out of the cluster and log back in. You should then be able to load the module with

Question.png
[name@server ~]$ module load materialsstudio/2020

In order to be able to access the license server from the compute nodes, you will need to contact technical support so that we can configure our firewall(s) to allow the software to connect to your licence server.


Installing Materials Studio 2018

Note

These instructions have been tested with Materials Studio 2018.


If you have access to Materials Studio 2018, you will need two things to proceed. First, you must have the archive file that contains the installer; this file should be named MaterialsStudio2018.tgz. Second, you must have the IP address (or DNS name) and the port of an already configured license server to which you will connect.

Once you have these, upload the MaterialsStudio2018.tgz file to your /home folder on the cluster you intend to use. Then, run the commands

Question.png
[name@server ~]$ export MS_LICENSE_SERVER=<port>@<server>

and

Question.png
[name@server ~]$ eb /cvmfs/soft.computecanada.ca/easybuild/easyconfigs/m/MaterialsStudio/MaterialsStudio-2018.eb --disable-enforce-checksums --sourcepath=$HOME

Once this command has completed, log out of the cluster and log back in. You should then be able to load the module with

Question.png
[name@server ~]$ module load materialsstudio/2018

In order to be able to access the license server from the compute nodes, you will need to contact technical support so that we can configure our firewall(s) to allow the software to connect to your licence server.

Team installation[edit]

If you are a PI holding the Materials Studio licence, you can install Materials Studio once for all your group members. Since normally team work is stored in the /project space, determine which project directory you want to use. Suppose it is ~/projects/A_DIRECTORY, then you will need to know these two values:

1. Determine the actual path of A_DIRECTORY as follows:

[name@server ~]$ PI_PROJECT_DIR=$(readlink -f ~/projects/A_DIRECTORY)
[name@server ~]$ echo $PI_PROJECT_DIR

2. Determine the group of A_DIRECTORY as follows:

[name@server ~]$ PI_GROUP=$(stat -c%G $PI_PROJECT_DIR)
[name@server ~]$ echo $PI_GROUP


With these values known, install Materials Studio.

  1. Change the default group to your team's def- group, e.g.,
    Question.png
    [name@server ~]$ newgrp $PI_GROUP
    
  2. Open the permissions of your project directory so your team can access it, e.g.,
    Question.png
    [name@server ~]$ chmod g+rsx $PI_PROJECT_DIR
    
  3. Create an install directory within /project, e.g.,
    Question.png
    [name@server ~]$ mkdir $PI_PROJECT_DIR/MatStudio2018
    
  4. Install the software, e.g.,
    Question.png
    [name@server ~]$ MS_LICENSE_SERVER=<port>@<server> eb MaterialsStudio-2018-dummy-dummy.eb --installpath=$PI_PROJECT_DIR/MatStudio2018 --sourcepath=$HOME
    

Before the software can be run:

  1. Run this command.
    Question.png
    [name@server ~]$ module use $PI_PROJECT_DIR/MatStudio2018/modules/2017/Core/
    
    • Your team members may wish to add this to their ~/.bashrc file.
  2. Load the materialsstudio module, i.e.,
    Question.png
    [name@server ~]$ module load materialsstudio
    


NOTE: Be sure to always replace variables PI_GROUP and PI_PROJECT_DIR with their appropriate values.

Examples of Slurm job submission scripts[edit]

The following examples assume that you have installed Materials Studio 2018 according to the above instructions.

File : file.txt

#!/bin/bash
#SBATCH --nodes=1
#SBATCH --ntasks-per-node=1
#SBATCH --cpus-per-task=32
#SBATCH --time=12:00:00

module load materialsstudio/2018

# Create a list of nodes to be used for the job
DSD_MachineList="machines.LINUX"
slurm_hl2hl.py --format HP-MPI > $DSD_MachineList
export DSD_MachineList

# Job to run
RunDMol3.sh -np $SLURM_CPUS_PER_TASK Brucite001f


Below is an example of a Slurm job script that relies on Materials Studio's RunCASTEP.sh command:

File : file.txt

#!/bin/bash
#SBATCH --nodes=1
#SBATCH --ntasks=1
#SBATCH --cpus-per-task=2
#SBATCH --mem-per-cpu=1M
#SBATCH --time=0-12:00

module load materialsstudio/2018

DSD_MachineList="mpd.hosts"
slurm_hl2hl.py --format MPIHOSTLIST >$DSD_MachineList
export DSD_MachineList

RunCASTEP.sh -np $SLURM_CPUS_PER_TASK castepjob

if [ -f castepjob_NMR.param ]; then
  cp castepjob.check castepjob_NMR.check
  RunCASTEP.sh -np $SLURM_CPUS_PER_TASK castepjob_NMR
fi


Installing earlier versions of Materials Studio[edit]

If you require an earlier version of Materials Studio than 2018, you will need to install in into an Apptainer container. This involves

  1. creating an Apptainer container with a compatible distribution of Linux installed in it;
  2. installing Materials Studio into that container;
  3. uploading the Apptainer container to your account and using it there.
    • NOTE: In order to be able to access the license server from the compute nodes, you will need to contact technical support so that we can configure our firewall(s) to allow the software to connect to your license server.

Please be aware that you might be restricted to whole-node (single-node) jobs as the version of MPI inside the container might not be able to be used across nodes.