Preparing a remote server before the first simulation#

To be able to run simulations with ASAP on remote servers, you have to make sure that the remote environments fulfil a few requirements. First of all, each remote server must provide a work environment compatible with the Unix standards. This includes any Linux distribution, any BSD distribution, and MacOS X to a large extent. Proprietary Unix-based systems are also supported. This is not required for the local computer.
In this appendix, we provide instructions on how to configure remote servers.
NOTE: The following steps have to be done only once on each remote server and are not necessary for local simulations.
  1. Make sure the user on the local computer can connect through SSH. See section SSH connection.

  2. Make sure that you have access to the correct version of Python 3 on the remote server. See section Python interpreter.

  3. Install Python package on the remote server.

  4. Install a binary executable of SIESTA on the remote server. See section Installing SIESTA on the remote server.

  5. Setup ASAP to allow the connection to the cluster, refer to section :ref:”sec-setup-asap-remote”.

SSH connection#

The first step in configuring a remote server for ASAP is to connect to it through SSH. Depending on the remote server provider policy the secutiry protocol access might vary. We suggest to connect through SSH to remote servers with public-key authentication, see section .
In the next subsections, we give you instructions on how to install a Install OpenSSH on the local machine and configure an SSH public-key authentication access.

Install OpenSSH#

We highly recommend OpenSSH, which is available for most Unix-like systems.
On Windows 10, you can install the OpenSSH Client following the steps below:
  • Type app in the start search bar.

  • Select “settings app”.

  • In the “Window Settings” which appears, click on “Apps”.

  • Then click on “Optional features” and “Add a feature”.

  • Look for OpenSSH Client, click on it and install.

If you encounter any problems in setting up openssh, please refer to your network administrator or to the OpenSSH documentation for installation instructions.

SSH public-key authentication#

SSH connection often require to input a password, the password can be inputed directly in ASAP, please refer to the option Required password at connection time in section Adding a remote machine. Alternatively, the SSH connections can take place through public keys in a non-interactive way. This means that your local account must have a public-private SSH key pair properly configured and that the local public key must be registered on the remote server.
Once you have made sure that this is the case, you can proceed with the configuration of the remote server using this connection.
Please follow the steps below if you wish to configure an SSH public-key authentication access.

Generate public-private SSH key pair on Windows 10#

Open a powershell instance and use ssh-keygen to generate the public-private SSH key pair,

ssh-keygen

Follow the instructions to generate the id_rsa, id_rsa.pub files.

Register the local public key on the remote server#

Access the .ssh/ folder in your home using the command:
cd $HOME/.ssh

and list the files in the folder:

ls
Add the contents of your machine public key (id_rsa.pub) at the end of the $HOME/.ssh/authorized_keys file, located on the remote server. Create the authorized_keys file if it does not exist.
Note: Be careful to append your key to the file, preserving its previous contents, or you might become unable to connect to it from other computers than the current one.
Connect to the remote server through SSH to confirm that it does not ask you for a password. At most, you should be asked for the passphrase of your SSH key.

Python interpreter#

Independently of the program used to run remote simulations, the remote server must provide a working Python 3 environment.
Please note that Python version 3.8 or above is required on the remote server or the simulations will fail. If you are not sure how to access a Python 3 installation, please ask your server administrator to provide you with instructions on how to do so.
Once you are able to run a Python interpreter, you can check that it provides a couple of essential modules by running it:
python

and typing the following commands in the Python console:

import pip
import venv
If one of these 2 commands fails, please ask your server administrator to install the corresponding Python module or provide you with an alternative. Once done, you can exit from the Python console by typing Ctrl-D (or Cmd-D on MacOS).
Write down any command required to make Python visible to your system at the bottom of the .simune_env file.

You do not have Python already avaialable in yout machine: Miniconda#

If your remote machine does not provide with the proper python version you can easily install it yourself. One possible option to do that is to use Miniconda.

Run the wget command to download Miniconda package,

wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh

Then type the following command in order to install package,

bash Miniconda3-latest-Linux-x86_64.sh -p <full-path-to-the-folder-were-you-want-install-Miniconda>

and follow the installation process.

As described at the end of the installation process please type the command,

eval "$(<full-path-to-the-folder-were-you-want-install-Miniconda>/bin/conda shell.bash hook)"

to activate conda’s base environment in your current shell session.

Install python3.10 enviroment by typing,

conda create -n py310 python=3.10

Next, activate py310 enviroment,

conda activate py310

Once the enviroment has been activated follow the next section instructions, Install Python package on the remote server.

Install Python package on the remote server#

The package necessary to install the python libraries that ASAP needs to run a simulation on a remote server can be downloaded using the following links

You should now have downloaded the package simune-asap-remote-env-XXXX.X.zip on your computer.

Please follow the next steps in order to complete the installation.

Copy simune-asap-remote-env-XXXX.X.zip on the remote server. This can be done using scp command, run the following command from your local machine,

scp -r simune-asap-remote-env-XXXX.X.zip <user>@<remote-server>:

Connect to the remote cluster using ssh command and unzip the folder,

unzip simune-asap-remote-env-XXXX.X.zip

and enter the folder

cd simune-asap-remote-env-XXXX.X

If you want to make sure that the installed environment corresponds to a specific version of Python, simply remove the simune-remote-env-py.tgz files associated with the other versions. For instance, if you have a Python 3.10 environment, you would type:

rm simune-remote-env-py3.7.tgz simune-remote-env-py3.8.tgz simune-remote-env-py3.9.tgz

If all files are present, the installer will always try to install the environment for the most recent Python version.

Finally, run the following command,

bash ./install-simune-env.sh

and wait for the script to finish. At the end, it will display instructions and explanations on how to use your new environment with ASAP. Please make a copy of these instructions before closing the connection.

_images/remote-setup-terminal.png

Fig. 26 Copy the line starting with “source” in the remote RC command, please see section Adding a remote machine.#

Installing SIESTA on the remote server#

If you already have SIESTA installed or you don-t need it you can skip this part.
If you want to run simulations with SIESTA, the next step is to install a SIESTA binary on the remote server. For this, you can either ask your server administrator to install SIESTA for you and explain how to access it, or request a SIESTA binary for your architecture to Simune.
Please note that Simune can provide binary executables for several operating systems, namely Windows 10, MacOS X Yosemite and Catalina, as well as Debian, Fedora, and Ubuntu Linux. It will also soon be possible to get Singularity images.
Please send a request to info@simuneatomistics.com mentioning the operating system and architecture of the server to receive download instructions. If you already requested a tarball of ASE, you will likely have received this executable at the same time.
Once SIESTA is installed, you may receive instructions on how to adjust the server environment so that the SIESTA executable can be found by the operating system.

Installing TranSIESTA/TBtrans on the remote server#

If you already have TranSIESTA installed or you don-t need it you can skip this part.
If you want to perform transport simulation on your system, you need to have installed TranSIESTA and TBtrans executable on your remote server. As for SIESTA, you can either ask your server administrator to install the executables for you and explain how to access them, or request a TranSIESTA and TBtrans binary for your architecture to Simune.
Please send a request to info@simuneatomistics.com mentioning the operating system and architecture of the server to receive download instructions.
Once the executables are installed, you may receive instructions on how to adjust the server environment so that the executables can be found by the operating system. Write down any command required to make two executables visible to your system in the .simune_env file. See section Adding a program.

Setup ASAP to allow the connection to the cluster#

Please refer to section Managing local and remote runners.

Troubleshooting#

Cannot connect to remote servers after Windows upgrade#

If connections to remote servers were working before a Windows upgrade and stop doing so afterwards, it is likely because the SSH agent has been disabled.
To re-enable it, open a PowerShell terminal with Administrator privileges and type:
Set-Service ssh-agent -StartupType Automatic

Then reboot the computer.

If this still doesn’t work, open a normal PowerShell terminal and type:

ssh-add $HOME/.ssh/id_rsa
If your key has a different name, please substitute id_rsa with the actual key name.
Restart ASAP after adding the key. This should now work.
If you still have trouble, please consult your system administrator.
SIMUNE is a company expert in Atomistic Simulations. We offer services for leading industrial, academic, and research customers working with materials (semiconductors, energy storage, new compounds, etc.). SIMUNE trains researchers on atomic scale simulation techniques and collaborates with them in complex simulation challenges. Besides, SIMUNE provides them with professional support in order to accelerate and optimize the materials design process.
ASAP (Advanced Simulation Atomistic Platform) software is a product of Simune Atomistics S.L. ASAP is composed of a set of tools and modules developed around atomistic simulation codes to facilitate their use for industrial users. ASAP includes a SIESTA calculator interface. Upcoming versions of ASAP will provide interfaces with other computational engines, some of which working at different scales than SIESTA.
ASAP is designed to fulfill the following main objectives:
  • Make popular materials modeling codes available to industrial users.

  • Gather the relevant tools and codes within a unified user interface, in order to improve their usability.

  • Automate the existing workflows for the simulation of materials properties and industrial problems of interest.

Soler, José M, Emilio Artacho, Julian D Gale, Alberto Garcı́a, Javier Junquera, Pablo Ordejón, and Daniel Sánchez-Portal. 2002. “The SIESTA Method for Ab Initio order-N Materials Simulation.” Journal of Physics: Condensed Matter 14 (11): 2745–79. https://doi.org/10.1088/0953-8984/14/11/302.