Containerized versions
Singularity Usage¶
In this tutorial, we will explain how to download, setup, and run FabSim3 within a singularity container image.
Dependencies¶
- Singularity, which you can download and install from here.
- OpenSSH Server.
Installation under Ubuntu Linux:
sudo apt install openssh-server
sudo yum install -y openssh-server
FabSim3 Singularity Installation¶
Download the singularity image from Singularity Hub:
singularity pull --name fabsim.simg shub://arabnejad/FabSim3
Tip
The download image should be kept as fabsim.simg
, this filename will be used later for setting environment variables and alias names in your ~/.bashrc
file.
-
To see How to Use Fabsim3 singularity:
./fabsim.simg --help or ./fabsim.simg -h
-
Running the following will download the FabSim3 library in your local machine:
./fabsim.simg --install [fabsim_INSTALL_DIR] or ./fabsim.simg -i [fabsim_INSTALL_DIR]
By default, it will be downloaded in sub-folder
FabSim3
in your current directory, you also can set the installation directory by setting[fabsim_INSTALL_DIR]
parameter.At the end of installation part, you will receive a message, which explains how you should setup your PC for further usage.
Please add/load the generated
fabsim_env.conf
in your~/.bashrc
. -
To load:
source \${fabsim_INSTALL_DIR}/fabsim_env.conf
-
To add to your
~/.bashrc
:echo \"source \${fabsim_INSTALL_DIR}/fabsim_env.conf\" >> ~/.bashrc source ~/.bashrc
fabsim_INSTALL_DIR
will be replaced by your local machine path.
After loading the environment variable from fabsim_env.conf
into your current shell script, fab
command will be available as a alias name to run for singularity image and accept all FabSim3 commands.
For QCG users¶
- Please make sure, you update/replace username:
"plg<your-username>"
with your username account in{fabsim_INSTALL_DIR}/deploy/machines_user.yml
. - Sets up SSH key pairs for FabSim3 access:
fab qcg setup_ssh_keys
- Please create a globus in your
$HOME
directory, If Not Exist:mkdir -p ~/.globus
- Copy
usercert.pem
anduserkey.pem
from your account to~/.globus
:scp plg<user>@eagle.man.poznan.pl:~/.globus/usercert.pem ~/.globus scp plg<user>@eagle.man.poznan.pl:~/.globus/userkey.pem ~/.globus
FabSim3 with QCG middleware¶
To execute jobs through remote resource schedulers, some essential machine-specific configurations are required to be set and stored. These parameters will be applied to all applications run on that remote machine.
First, you need to add your username for the remote machine in FabSim3/fabsim/deploy/machines_user.yml
file as:
qcg: # machine name
username: "plg..."
FabSim3/fabsim/deploy/machines.yml
file. Here is a simple example:
qcg: # machine name
remote: 'eagle.man.poznan.pl'
home_path_template: '/home/plgrid/$username'
manual_ssh: true
dispatch_jobs_on_localhost: true
job_dispatch : 'qcg-sub'
batch_header: qcg-eagle
stat: 'qcg-list -Q -s all -F "%-22I %-16S %-8H" | awk "{if(NR>2)print}"'
job_dispatch: 'qcg-sub'
cancel_job_command: 'qcg-cancel $jobID'
job_info_command : 'qcg-info -Q $jobID'
qcg
: the name of target remote machine, it will use by FabSim3 asfab qcg <command>
. Internally, FabSim3 uses<$user_name>@<$remote>
to connect to the remote machine.remote
: the remote machine address. FabSim3 uses<$user_name>@<$remote>
template internally for all connections. The user_name parameter is taken fromFabSim3/fabsim/deploy/machines.yml
file.home_path_template
: used to the storage space to checkout and build on the remote machine.manual_ssh
: when enabled, FabSim3 will connect directly using an ssh client instead of using the paramiko api.dispatch_jobs_on_localhost
: if it is set totrue
, job dispatch is done locally. Otherwise, FabSim3 executes commands directly inside the remote machine by ssh connection. To dispatch a job locally, the command-line interface for job management should be installed in your local machine.batch_header
: it can be used to add some predefined templates to the submitted job script. The template file should be stored atFabSim3/fabsim/deploy/templates
.stat
: filled by the command line that displays report on the submitted jobs. In this example, according to our grid broker,qcg-list
command displays a table with information about tasks.