Advanced Configuration and Remote Execution#

In this section, we explain how to configure ASAP for both local and remote execution using the supported calculators: SIESTA (versions 4.1, 5.0, 5.2, 5.4 and 5.5), TranSIESTA (versions 4.1, 5.0, 5.2, 5.4 and 5.5), Quantum ESPRESSO (version 6.x and 7.x), and MACE (MACE-MPA-0, MACE-MP-0b3, MACE-MP-0b2, MACE-MP-0b, custom).
The requirements and setup steps for local and remote runs depend on the calculator you select. Table 4 provides a summary of the steps required for each execution environment, along with direct links to the detailed setup instructions.
Table 4 Overview of setup steps for local and remote execution by calculator.#

Calculator

Local Run

Remote Cluster

SIESTA & Quantum ESPRESSO

- Install binary

- Install ASAP Python environment

- Setup ASAP for remote connection

MACE

- Install ASAP-MACE environment
(python and MACE included)



- Install ASAP-MACE environment
(python and MACE included)

- Setup ASAP for remote connection

Local Run Setup: Install SIESTA, Quantum ESPRESSO and MACE#

SIESTA, Quantum ESPRESSO and MACE can be run in serial mode (using a single processor) or parallel mode (distributing tasks across multiple processors).

SIESTA version 4.1#

We recommend you to use the embedded SIESTA executable provided by ASAP as explained in chapter Quick Start Guide.

SIESTA version 5.x#

As for SIESTA 4.1, we recommend you to use the embedded SIESTA executable provided by ASAP as explained in chapter Quick Start Guide.
If you want to install it yourself and your operative system is Linux or MacOS, we recommend to use Anaconda or Miniconda. For a step by step guide please check Annex 1: Install SIESTA and Quantum ESPRESSO using Miniconda.
Notice that from SIESTA 5.0 onwards, TranSIESTA is integrated within the SIESTA package and does not require separate installation.
If you plan to run simulations in parallel mode, in addition to installing the necessary program (e.g., SIESTA and TranSIESTA), you must also install the required parallel libraries for your operating system. These libraries enable communication between processors and ensure efficient use of system resources during parallel execution. Check Section Annex 2: Install parallel libraries if you want to know how to install them on Windows and Linux.

Quantum ESPRESSO version 7.4#

We recommend you to use the embedded Quantum ESPRESSO executable provided by ASAP as explained in chapter Quick Start Guide.
If you want to install it yourself and your operative system is Linux or MacOS, we recommend to use Anaconda or Miniconda. For a step by step guide please check Section Annex 1: Install SIESTA and Quantum ESPRESSO using Miniconda.

MACE Calculator#

To use the MACE calculator, you must install the ASAP-MACE Python environment on your target system (local or remote). This is a pre-packaged Python environment provided by SIMUNE that includes MACE, PyTorch, ASE, and all necessary dependencies, eliminating manual package installation.
Download the environment using the link below and follow the included instructions to complete the setup.

Remote HPC setup#

To run remote simulations with ASAP, your target server must provide a Unix-compatible operating system (such as any Linux distribution, BSD, macOS, or proprietary Unix-based system). This requirement applies only to remote hosts and is not required for your local machine.
This section provides step-by-step instructions for configuring your remote server environment.
Note: These setup steps need to be performed only once per remote server and are not required for local simulations.
  1. Make sure the user on the local computer can connect through SSH. See section Ensure SSH connection.

  2. Install Python package on a remote server.

Ensure SSH connection#

The first step in configuring a remote server for ASAP is to connect to it through SSH.
If can already connect through ssh to your cluster you can directly go to the next section.
In section Annex 3: Install OpenSSH, we give you instructions on how to install a openSSH on the local machine and configure SSH public-key authentication access.

Install Python package on a remote server#

These following ASAP python environmentd are design for UNIX systems which are often the choice of HPC and external cluster.

Download the file, copy it to the cluster, extract the package, and follow the instructions inside.

Install SIESTA and QE on a remote server#

The installation and optimization of electronic structure codes (such as SIESTA and Quantum ESPRESSO) on remote High-Performance Computing (HPC) clusters depend heavily on the server’s specific hardware architecture, MPI implementation, and mathematical libraries.
If these codes are not pre-installed on your target system, contact your HPC system administrator or support team to request their installation.
Note: Active SIMUNE license holders include dedicated support for remote HPC setup. If you encounter difficulties installing or configuring SIESTA/Quantum ESPRESSO on your cluster, please contact our support team at team@simuneatomistics.com for assistance.

Set up ASAP#

Once the requirements are met, click the Configure Runner button to set up ASAP for remote computing.
Advanced guide configure runners
It will open the configuration runners widget, as shown in Fig. 3.
Advanced guide configure runners

Fig. 3 Configuration runner widget.#

  • Programs: Select this radio button to enable managing programs and add a new program using the New program… button.

  • Queues: Select this radio button to enable managing queues and add a new setup using the New queue… button.

  • New remote…: To open the configuration widget containing a form that allows you to configure remote connections to clusters or servers for remote computing

  • New program…: This button appears when the Programs radio button is selected. It is used to configure an executable on the remote server. See subsection Set up the program in ASAP.

  • New queue…: This button appears when the Queues radio button is selected. It is used to configure a queue system on the remote server. See subsection Set up the queue in ASAP.

  • Edit…: To edit a previously configured remote machine.

  • Delete: To delete a previously configured remote connection.

  • Copy: To copy a previously created remote configuration.

Click on the New remote… button to open the remote configuration widget. This widget contains a form that allows you to configure remote connections to clusters or servers for remote computing, as shown in Fig. 4.
../_images/runners-resources-remote-machine.png

Fig. 4 Remote configuration widget. You can set up your remote machine here.#

The first four fields define the required parameters to establish the connection to a remote server/cluster.
  • Name: Name of the remote connection, up to the user preferences.

  • Hostname: IP address of the remote server.

  • Username: Username of the user in the remote server.

  • Port: To adjust the network port used to connect through SSH. At present, this field must be non-empty.

The remaining fields define additional settings related to the remote execution environment, connection behavior, and Python configuration.
  • Timeout: To setup the network timeout. At present, this field must be non-empty.

  • Required password at connection time: If checked the user is required to input the remote server password in order to connect.

  • Python: Tells ASAP where to find the python interpreter.

  • Remote RC command: Tell ASAP how to set the remote environment appropriately before running simulations. Please follow the recommendations described in section Install Python package on a remote server.

  • Remote workspace: Workspace to use for the simulations on the remote server. The workspace path must be absolute.

Click the Check this configuration button to test the connection to the server using the selected Python environment.
Install SIESTA

Set up the program in ASAP#

This widget is used to specify essential details about the simulation code, including its name and path on the local or remote machine.
This configuration is required for both local and remote runs.
Check the Programs radio button and afterwards click on New program… to open the Program widget.
Advanced guide configure runners new program
../_images/runners-resources-new-program.png

Fig. 5 Widget to configure the runner on the local or on a remote machine.#

Here, we list the options of the Program widget:

  • Name: Name of the program.

  • Executable: Executable program path on the local or remote machine.

  • Program Type: Two drop-down menus that allow you to select the program and its version. There are three available options: SIESTA, TranSIESTA, TBtrans and Quantum ESPRESSO.

  • MPI executable: MPI executable path on the local or remote machine.

  • … options: Use this field to include any additional commands not mentioned above but supported by the selected batch scheduler vendor.

  • Environment setup: Use this field to specify any environment commands or modules required to run the program (e.g., module load …).

  • Queue: Use this dropdown menu to select a direct run (for local and remote execution) or a pre-configured queue (for remote execution). In fact, when run locally, the calculator is always executed directly by ASAP, while on remote machines it can be executed either directly or through a batch scheduler. See subsection Set up the queue in ASAP to learn how to set up a queue.

  • Enviroment setup: Use this section to load all the necesary modules to run the program

  • Test program: Click this button to test the program.

If you run the check to test the program you should see the following message
Runners resources users queue

Set up the queue in ASAP#

This widget is used to specify essential details about the queue system to be used.
This configuration is required for remote runs.
Check the Queues radio button and afterwards click on New queue… to open the Batch Scheduler Configuration Widget widget.
The Batch Scheduler Configuration widget offers the option to tune the batch schedule vendor. ASAP supports Portable Batch System and Torque (PBS/TORQUE), Slurm Workload Manager (SLURM), IBM Spectrum (LSF) and Altair Grid Engine.
Runners resources batch schedule vendor
You can use fixed queue parameters. In this case, ASAP offers empty fields for the user to fill in, and then generates the submission script based on the selected batch scheduler.
Runners resources fixed queue
  • Configuration label: The name of Batch Scheduler Configuration.

  • Job name prefix: A word, letter or number to be placed before the identification number of the job. You can edit this prefix at your convenience.

  • Number of nodes: The number of nodes in a job.

  • Number of processors per node: How many processors are reserved for each node.

  • Batch queue: Queue name.

  • Maximum memory: Maximum required memory for the job.

  • Maximum CPU time: Maximum CPU time per node.

  • Maximum walltime: Maximum number of hours you want to run your job.

  • Notification email: User email specification.

Alternatively, you can select the option User’s queue script. This allows you to fully customize the job submission script.
Runners resources users queue
Once the configuration is complete, click the OK button to close the remote configuration widget.

Annex 1: Install SIESTA and Quantum ESPRESSO using Miniconda#

Download and install Miniconda#

If you already have Anaconda or Miniconda installed you can skip this step.
Follow the instructions at https://www.anaconda.com/docs/getting-started/installation to install Miniconda for your operating system.

Create and activate a Conda Python environment for SIESTA#

Once Miniconda is installed, create a new environment for SIESTA by running the following command in your terminal,
conda create -n py311 python=3.11
Activate the newly created environment by running,
conda activate py311

Install SIESTA & TranSIESTA 5.2#

To install the serial version of SIESTA 5.2, use the following command:
conda install -c conda-forge siesta
If you require the parallel version of SIESTA (recommended when you need to perform computationally intensive simulations that can benefit from running on multiple processors simultaneously), you need to install before the scalapack package (high-performance linear algebra library for parallel distributed memory machines),
conda install conda-forge::scalapack
Afterwards, to install parallel version of SIESTA, type the following command:
conda install -c conda-forge "siesta=5.2=*openmpi*"
Alternatively, you can use the MPICH library for the same purpose:
conda install -c conda-forge "siesta=5.2=*mpich*"
Once the parallel version of SIESTA is installed, keep open your terminal and verify your installation following instructions given in the next section, Verify SIESTA installation.

Verify SIESTA installation#

To confirm that SIESTA has been successfully installed, on the same terminal window type from which you installed SIESTA 5.2 as described in section Install SIESTA & TranSIESTA 5.2,type the following command:
siesta --version
You should see the SIESTA version information displayed in the terminal as shown in the example below,
Executable      : siesta
Version         : 5.2.0
Architecture    : x86_64
Compiler version: GNU-13.3.0
Compiler flags  : -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem <prefix>/include -I<prefix>/_build_env/include -fdebug-prefix-map=<prefix>/work=/usr/local/src/conda/siesta-5.2.0 -fdebug-prefix-map=<prefix>=/usr/local/src/conda-prefix -I<prefix>/lib -fallow-argument-mismatch -O3
Parallelisations: MPI
...

Install Quantum ESPRESSO#

You can also install the parallel version of Quantum ESPRESSO via Conda using the following command:
conda install conda-forge::qe

Verify Quantum ESPRESSO installation#

Type
pw.x
in the terminal to verify that Quantum ESPRESSO is correctly installed.
You should see output similar to the figure below, indicating that Quantum ESPRESSO is running and waiting for an input file.
Program PWSCF v.7.4 starts on  8May2025 at 10:32:36

This program is part of the open-source Quantum ESPRESSO suite
for quantum simulation of materials; please cite
    "P. Giannozzi et al., J. Phys.:Condens. Matter 21 395502 (2009);
    "P. Giannozzi et al., J. Phys.:Condens. Matter 29 465901 (2017);
    "P. Giannozzi et al., J. Chem. Phys. 152 154105 (2020);
     URL http://www.quantum-espresso.org",
in publications or presentations arising from this work. More details at
http://www.quantum-espresso.org/quote

Parallel version (MPI & OpenMP), running on       1 processor cores
Number of MPI processes:                 1
Threads/MPI process:                     1

MPI processes distributed on     1 nodes
2985 MiB available memory on the printing compute node when the environment starts

Waiting for input...

Annex 2: Install parallel libraries#

Windows: Installing Microsoft MPI v10.1.3#

Microsoft MPI v10.1.3 is a Windows mpi library necessary to run SIESTA using several processors. It is a microsoft software and can be downloaded from https://www.microsoft.com/en-us/download/details.aspx?id=105289. When you click on download please choose the item msmpisetup.exe.
../_images/microsoft-mpi.png
Once downloaded just double-click on it and follow the instructions to install the tool.

Debian/Ubuntu/Mint: Installing Scalapack Openmpi library#

To install Scalapack Openmpi library use the apt install command (you need to be superuser):
sudo apt install libnetcdff-dev libopenblas-openmp-dev libscalapack-openmpi-dev openmpi-bin

Annex 3: 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 Set up ASAP. 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.

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 Garcia, 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.