initial formatting changes complete
This commit is contained in:
@@ -2,15 +2,15 @@
|
||||
|
||||
## SSH Access
|
||||
|
||||
For interactive command shell access, use an SSH client. We recommend to activate SSH's X11 forwarding to allow you to use graphical
|
||||
applications (e.g. a text editor, but for more performant graphical access, refer to the sections below). X applications are supported
|
||||
For interactive command shell access, use an SSH client. We recommend to activate SSH's X11 forwarding to allow you to use graphical
|
||||
applications (e.g. a text editor, but for more performant graphical access, refer to the sections below). X applications are supported
|
||||
in the login nodes and X11 forwarding can be used for those users who have properly configured X11 support in their desktops, however:
|
||||
|
||||
* Merlin7 administrators **do not offer support** for user desktop configuration (Windows, MacOS, Linux).
|
||||
* Hence, Merlin7 administrators **do not offer official support** for X11 client setup.
|
||||
* Nevertheless, a generic guide for X11 client setup (*Linux*, *Windows* and *MacOS*) is provided below.
|
||||
* Hence, Merlin7 administrators **do not offer official support** for X11 client setup.
|
||||
* Nevertheless, a generic guide for X11 client setup (*Linux*, *Windows* and *MacOS*) is provided below.
|
||||
* PSI desktop configuration issues must be addressed through **[PSI Service Now](https://psi.service-now.com/psisp)** as an *Incident Request*.
|
||||
* Ticket will be redirected to the corresponding Desktop support group (Windows, Linux).
|
||||
* Ticket will be redirected to the corresponding Desktop support group (Windows, Linux).
|
||||
|
||||
### Accessing from a Linux client
|
||||
|
||||
@@ -26,7 +26,8 @@ Refer to [{How To Use Merlin -> Accessing from MacOS Clients}](../02-How-To-Use-
|
||||
|
||||
## NoMachine Remote Desktop Access
|
||||
|
||||
X applications are supported in the login nodes and can run efficiently through a **NoMachine** client. This is the officially supported way to run more demanding X applications on Merlin7.
|
||||
X applications are supported in the login nodes and can run efficiently through a **NoMachine** client. This is the officially supported way to run more demanding X applications on Merlin7.
|
||||
|
||||
* For PSI Windows workstations, this can be installed from the Software Kiosk as 'NX Client'. If you have difficulties installing, please request support through **[PSI Service Now](https://psi.service-now.com/psisp)** as an *Incident Request*.
|
||||
* For other workstations The client software can be downloaded from the [Nomachine Website](https://www.nomachine.com/product&p=NoMachine%20Enterprise%20Client).
|
||||
|
||||
|
||||
@@ -1,12 +1,4 @@
|
||||
---
|
||||
title: Accessing Slurm Cluster
|
||||
#tags:
|
||||
keywords: slurm, batch system, merlin5, merlin7, gmerlin7, cpu, gpu
|
||||
last_updated: 07 September 2022
|
||||
#summary: ""
|
||||
sidebar: merlin7_sidebar
|
||||
permalink: /merlin7/slurm-access.html
|
||||
---
|
||||
# Accessing Slurm Cluster
|
||||
|
||||
## The Merlin Slurm clusters
|
||||
|
||||
@@ -28,7 +20,7 @@ In addition, any job *must be submitted from a high performance storage area vis
|
||||
|
||||
### Merlin7 CPU cluster access
|
||||
|
||||
The **Merlin7 CPU cluster** (**`merlin7`**) is the default cluster configured in the login nodes. Any job submission will use by default this cluster, unless
|
||||
The **Merlin7 CPU cluster** (**`merlin7`**) is the default cluster configured in the login nodes. Any job submission will use by default this cluster, unless
|
||||
the option `--cluster` is specified with another of the existing clusters.
|
||||
|
||||
For further information about how to use this cluster, please visit: [**Merlin7 CPU Slurm Cluster documentation**](../03-Slurm-General-Documentation/slurm-configuration.md#cpu-cluster-merlin7).
|
||||
|
||||
@@ -1,12 +1,4 @@
|
||||
---
|
||||
title: Code Of Conduct
|
||||
#tags:
|
||||
keywords: code of conduct, rules, principle, policy, policies, administrator, backup
|
||||
last_updated: 07 September 2022
|
||||
#summary: ""
|
||||
sidebar: merlin7_sidebar
|
||||
permalink: /merlin7/code-of-conduct.html
|
||||
---
|
||||
# Code Of Conduct
|
||||
|
||||
## The Basic principle
|
||||
|
||||
@@ -18,10 +10,10 @@ The basic principle is courtesy and consideration for other users.
|
||||
## Interactive nodes
|
||||
|
||||
* The interactive nodes (also known as login nodes) are for development and quick testing:
|
||||
* It is **strictly forbidden to run production jobs** on the login nodes. All production jobs must be submitted to the batch system.
|
||||
* It is **forbidden to run long processes** occupying big parts of a login node's resources.
|
||||
* According to the previous rules, **misbehaving running processes will have to be killed.**
|
||||
in order to keep the system responsive for other users.
|
||||
* It is **strictly forbidden to run production jobs** on the login nodes. All production jobs must be submitted to the batch system.
|
||||
* It is **forbidden to run long processes** occupying big parts of a login node's resources.
|
||||
* According to the previous rules, **misbehaving running processes will have to be killed.**
|
||||
in order to keep the system responsive for other users.
|
||||
|
||||
## Batch system
|
||||
|
||||
@@ -35,7 +27,7 @@ The basic principle is courtesy and consideration for other users.
|
||||
## User and project data
|
||||
|
||||
* ***Users are responsible for backing up their own data***. Is recommended to backup the data on third party independent systems (i.e. LTS, Archive, AFS, SwitchDrive, Windows Shares, etc.).
|
||||
* ***When a user leaves PSI, she or her supervisor/team are responsible to backup and move the data out from the cluster***: every few months, the storage space will be recycled for those old users who do not have an existing and valid PSI account.
|
||||
* ***When a user leaves PSI, she or her supervisor/team are responsible to backup and move the data out from the cluster***: every few months, the storage space will be recycled for those old users who do not have an existing and valid PSI account.
|
||||
|
||||
!!! warning
|
||||
When a user leaves PSI and his account has been removed, her storage space
|
||||
@@ -46,8 +38,8 @@ The basic principle is courtesy and consideration for other users.
|
||||
## System Administrator Rights
|
||||
|
||||
* The system administrator has the right to temporarily block the access to Merlin7 for an account violating the Code of Conduct in order to maintain the efficiency and stability of the system.
|
||||
* Repetitive violations by the same user will be escalated to the user's supervisor.
|
||||
* Repetitive violations by the same user will be escalated to the user's supervisor.
|
||||
* The system administrator has the right to delete files in the **scratch** directories
|
||||
* after a job, if the job failed to clean up its files.
|
||||
* during the job in order to prevent a job from destabilizing a node or multiple nodes.
|
||||
* after a job, if the job failed to clean up its files.
|
||||
* during the job in order to prevent a job from destabilizing a node or multiple nodes.
|
||||
* The system administrator has the right to kill any misbehaving running processes.
|
||||
|
||||
@@ -1,14 +1,4 @@
|
||||
---
|
||||
title: Introduction
|
||||
#tags:
|
||||
keywords: introduction, home, welcome, architecture, design
|
||||
last_updated: 07 September 2022
|
||||
sidebar: merlin7_sidebar
|
||||
permalink: /merlin7/introduction.html
|
||||
redirect_from:
|
||||
- /merlin7
|
||||
- /merlin7/index.html
|
||||
---
|
||||
# Introduction
|
||||
|
||||
## About Merlin7
|
||||
|
||||
@@ -56,9 +46,9 @@ The appliance is built of several storage servers:
|
||||
With effective storage capacity of:
|
||||
|
||||
* 10 PB HDD
|
||||
* value visible on linux: HDD 9302.4 TiB
|
||||
* value visible on linux: HDD 9302.4 TiB
|
||||
* 162 TB SSD
|
||||
* value visible on linux: SSD 151.6 TiB
|
||||
* value visible on linux: SSD 151.6 TiB
|
||||
* 23.6 TiB on Metadata
|
||||
|
||||
The storage is directly connected to the cluster (and each individual node) through the Slingshot NIC.
|
||||
|
||||
@@ -1,12 +1,4 @@
|
||||
---
|
||||
title: Requesting Merlin Accounts
|
||||
#tags:
|
||||
keywords: registration, register, account, merlin5, merlin7, snow, service now
|
||||
last_updated: 07 September 2022
|
||||
#summary: ""
|
||||
sidebar: merlin7_sidebar
|
||||
permalink: /merlin7/request-account.html
|
||||
---
|
||||
# Requesting Merlin Accounts
|
||||
|
||||
## Requesting Access to Merlin7
|
||||
|
||||
|
||||
@@ -1,12 +1,4 @@
|
||||
---
|
||||
title: Requesting a Merlin Project
|
||||
#tags:
|
||||
keywords: merlin project, project, snow, service now
|
||||
last_updated: 07 September 2022
|
||||
#summary: ""
|
||||
sidebar: merlin7_sidebar
|
||||
permalink: /merlin7/request-project.html
|
||||
---
|
||||
# Requesting a Merlin Project
|
||||
|
||||
A project owns its own storage area in Merlin, which can be accessed by other group members.
|
||||
|
||||
@@ -21,21 +13,21 @@ This document explains how to request new Unix group, to request membership for
|
||||
|
||||
## About Unix groups
|
||||
|
||||
Before requesting a Merlin project, it is important to have a Unix group that can be used to grant access to it to different members
|
||||
Before requesting a Merlin project, it is important to have a Unix group that can be used to grant access to it to different members
|
||||
of the project.
|
||||
|
||||
Unix groups in the PSI Active Directory (which is the PSI central database containing user and group information, and more) are defined by the `unx-` prefix, followed by a name.
|
||||
In general, PSI employees working on Linux systems (including HPC clusters, like Merlin) can request for a non-existing Unix group, and can become responsible for managing it.
|
||||
In general, PSI employees working on Linux systems (including HPC clusters, like Merlin) can request for a non-existing Unix group, and can become responsible for managing it.
|
||||
In addition, a list of administrators can be set. The administrators, together with the group manager, can approve or deny membership requests. Further information about this topic
|
||||
is covered in the [Linux Documentation - Services Admin Guides: Unix Groups / Group Management](https://linux.psi.ch/admin-guide/configuration/basic/users_and_groups.html), managed by the Central Linux Team.
|
||||
|
||||
To gran access to specific Merlin project directories, some users may require to be added to some specific **Unix groups**:
|
||||
* Each Merlin project (i.e. `/data/project/{bio|general}/$projectname`) or experiment (i.e. `/data/experiment/$experimentname`) directory has access restricted by ownership and group membership (with a very few exceptions allowing public access).
|
||||
* Users requiring access to a specific restricted project or experiment directory have to request membership for the corresponding Unix group owning the directory.
|
||||
* Each Merlin project (i.e. `/data/project/{bio|general}/$projectname`) or experiment (i.e. `/data/experiment/$experimentname`) directory has access restricted by ownership and group membership (with a very few exceptions allowing public access).
|
||||
* Users requiring access to a specific restricted project or experiment directory have to request membership for the corresponding Unix group owning the directory.
|
||||
|
||||
### Requesting a new Unix group
|
||||
|
||||
**If you need a new Unix group** to be created, you need to first get this group through a separate
|
||||
**If you need a new Unix group** to be created, you need to first get this group through a separate
|
||||
**[PSI Service Now ticket](https://psi.service-now.com/psisp)**. **Please use the following template.**
|
||||
You can also specify the login names of the initial group members and the **owner** of the group.
|
||||
The owner of the group is the person who will be allowed to modify the group.
|
||||
@@ -48,9 +40,9 @@ The owner of the group is the person who will be allowed to modify the group.
|
||||
* and base the text field of the request on this template
|
||||
```
|
||||
Dear HelpDesk
|
||||
|
||||
|
||||
I would like to request a new unix group.
|
||||
|
||||
|
||||
Unix Group Name: unx-xxxxx
|
||||
Initial Group Members: xxxxx, yyyyy, zzzzz, ...
|
||||
Group Owner: xxxxx
|
||||
@@ -62,6 +54,7 @@ The owner of the group is the person who will be allowed to modify the group.
|
||||
### Requesting Unix group membership
|
||||
|
||||
Existing Merlin projects have already a Unix group assigned. To have access to a project, users must belong to the proper **Unix group** owning that project.
|
||||
|
||||
Supervisors should inform new users which extra groups are needed for their project(s). If this information is not known, one can check the permissions for that directory. In example:
|
||||
```bash
|
||||
(base) ❄ [caubet_m@merlin-l-001:/data/user/caubet_m]# ls -ltrhd /data/project/general/$projectname
|
||||
@@ -95,16 +88,16 @@ To request a project, please provide the following information in a **[PSI Servi
|
||||
* and base the text field of the request on this template
|
||||
```
|
||||
Dear HelpDesk
|
||||
|
||||
|
||||
I would like to request a new Merlin7 project.
|
||||
|
||||
|
||||
Project Name: xxxxx
|
||||
UnixGroup: xxxxx # Must be an existing Unix Group
|
||||
|
||||
The project responsible is the Owner of the Unix Group.
|
||||
If you need a storage quota exceeding the defaults, please provide a description
|
||||
and motivation for the higher storage needs:
|
||||
|
||||
|
||||
Storage Quota: 1TB with a maximum of 1M Files
|
||||
Reason: (None for default 1TB/1M)
|
||||
|
||||
|
||||
@@ -1,12 +1,4 @@
|
||||
---
|
||||
title: Archive & PSI Data Catalog
|
||||
#tags:
|
||||
keywords: linux, archive, data catalog, archiving, lts, tape, long term storage, ingestion, datacatalog
|
||||
last_updated: 31 January 2020
|
||||
summary: "This document describes how to use the PSI Data Catalog for archiving Merlin7 data."
|
||||
sidebar: merlin7_sidebar
|
||||
permalink: /merlin7/archive.html
|
||||
---
|
||||
# Archive & PSI Data Catalog
|
||||
|
||||
## PSI Data Catalog as a PSI Central Service
|
||||
|
||||
@@ -19,14 +11,14 @@ The Data Catalog and Archive is suitable for:
|
||||
* Derived data produced by processing some inputs
|
||||
* Data required to reproduce PSI research and publications
|
||||
|
||||
The Data Catalog is part of PSI's effort to conform to the FAIR principles for data management.
|
||||
In accordance with this policy, ***data will be publicly released under CC-BY-SA 4.0 after an
|
||||
The Data Catalog is part of PSI's effort to conform to the FAIR principles for data management.
|
||||
In accordance with this policy, ***data will be publicly released under CC-BY-SA 4.0 after an
|
||||
embargo period expires.***
|
||||
|
||||
The Merlin cluster is connected to the Data Catalog. Hence, users archive data stored in the
|
||||
The Merlin cluster is connected to the Data Catalog. Hence, users archive data stored in the
|
||||
Merlin storage under the ``/data`` directories (currentlyi, ``/data/user`` and ``/data/project``).
|
||||
Archiving from other directories is also possible, however the process is much slower as data
|
||||
can not be directly retrieved by the PSI archive central servers (**central mode**), and needs to
|
||||
can not be directly retrieved by the PSI archive central servers (**central mode**), and needs to
|
||||
be indirectly copied to these (**decentral mode**).
|
||||
|
||||
Archiving can be done from any node accessible by the users (usually from the login nodes).
|
||||
@@ -48,33 +40,33 @@ Archiving can be done from any node accessible by the users (usually from the lo
|
||||
Below are the main steps for using the Data Catalog.
|
||||
|
||||
* Ingest the dataset into the Data Catalog. This makes the data known to the Data Catalog system at PSI:
|
||||
* Prepare a metadata file describing the dataset
|
||||
* Run **``datasetIngestor``** script
|
||||
* If necessary, the script will copy the data to the PSI archive servers
|
||||
* Usually this is necessary when archiving from directories other than **``/data/user``** or
|
||||
* Prepare a metadata file describing the dataset
|
||||
* Run **``datasetIngestor``** script
|
||||
* If necessary, the script will copy the data to the PSI archive servers
|
||||
* Usually this is necessary when archiving from directories other than **``/data/user``** or
|
||||
**``/data/project``**. It would be also necessary when the Merlin export server (**``merlin-archive.psi.ch``**)
|
||||
is down for any reason.
|
||||
* Archive the dataset:
|
||||
* Visit [https://discovery.psi.ch](https://discovery.psi.ch)
|
||||
* Click **``Archive``** for the dataset
|
||||
* The system will now copy the data to the PetaByte Archive at CSCS
|
||||
* Visit [<https://discovery.psi.ch](https://discovery.psi.ch>)
|
||||
* Click **``Archive``** for the dataset
|
||||
* The system will now copy the data to the PetaByte Archive at CSCS
|
||||
* Retrieve data from the catalog:
|
||||
* Find the dataset on [https://discovery.psi.ch](https://discovery.psi.ch) and click **``Retrieve``**
|
||||
* Wait for the data to be copied to the PSI retrieval system
|
||||
* Run **``datasetRetriever``** script
|
||||
* Find the dataset on [<https://discovery.psi.ch](https://discovery.psi.ch>) and click **``Retrieve``**
|
||||
* Wait for the data to be copied to the PSI retrieval system
|
||||
* Run **``datasetRetriever``** script
|
||||
|
||||
Since large data sets may take a lot of time to transfer, some steps are designed to happen in the
|
||||
background. The discovery website can be used to track the progress of each step.
|
||||
Since large data sets may take a lot of time to transfer, some steps are designed to happen in the
|
||||
background. The discovery website can be used to track the progress of each step.
|
||||
|
||||
### Account Registration
|
||||
|
||||
Two types of account permit access to the Data Catalog. If your data was collected at a ***beamline***, you may
|
||||
have been assigned a **``p-group``** (e.g. ``p12345``) for the experiment. Other users are assigned **``a-group``**
|
||||
(e.g. ``a-12345``).
|
||||
Two types of account permit access to the Data Catalog. If your data was collected at a ***beamline***, you may
|
||||
have been assigned a **``p-group``** (e.g. ``p12345``) for the experiment. Other users are assigned **``a-group``**
|
||||
(e.g. ``a-12345``).
|
||||
|
||||
Groups are usually assigned to a PI, and then individual user accounts are added to the group. This must be done
|
||||
under user request through PSI Service Now. For existing **a-groups** and **p-groups**, you can follow the standard
|
||||
central procedures. Alternatively, if you do not know how to do that, follow the Merlin7
|
||||
central procedures. Alternatively, if you do not know how to do that, follow the Merlin7
|
||||
**[Requesting extra Unix groups](../01-Quick-Start-Guide/requesting-accounts.md)** procedure, or open
|
||||
a **[PSI Service Now](https://psi.service-now.com/psisp)** ticket.
|
||||
|
||||
@@ -114,11 +106,11 @@ $ SCICAT_TOKEN=RqYMZcqpqMJqluplbNYXLeSyJISLXfnkwlfBKuvTSdnlpKkU
|
||||
|
||||
Tokens expire after 2 weeks and will need to be fetched from the website again.
|
||||
|
||||
### Ingestion
|
||||
### Ingestion
|
||||
|
||||
The first step to ingesting your data into the catalog is to prepare a file describing what data you have. This is called
|
||||
**``metadata.json``**, and can be created with a text editor (e.g. *``vim``*). It can in principle be saved anywhere,
|
||||
but keeping it with your archived data is recommended. For more information about the format, see the 'Bio metadata'
|
||||
The first step to ingesting your data into the catalog is to prepare a file describing what data you have. This is called
|
||||
**``metadata.json``**, and can be created with a text editor (e.g. *``vim``*). It can in principle be saved anywhere,
|
||||
but keeping it with your archived data is recommended. For more information about the format, see the 'Bio metadata'
|
||||
section below. An example follows:
|
||||
|
||||
```yaml
|
||||
@@ -176,30 +168,31 @@ It will ask for your PSI credentials and then print some info about the data to
|
||||
datasetIngestor --token $SCICAT_TOKEN --ingest --autoarchive metadata.json
|
||||
```
|
||||
|
||||
You will be asked whether you want to copy the data to the central system:
|
||||
You will be asked whether you want to copy the data to the central system:
|
||||
|
||||
* If you are on the Merlin cluster and you are archiving data from ``/data/user`` or ``/data/project``, answer 'no' since the data catalog can
|
||||
|
||||
* If you are on the Merlin cluster and you are archiving data from ``/data/user`` or ``/data/project``, answer 'no' since the data catalog can
|
||||
directly read the data.
|
||||
* If you are on a directory other than ``/data/user`` and ``/data/project, or you are on a desktop computer, answer 'yes'. Copying large datasets
|
||||
* If you are on a directory other than ``/data/user`` and ``/data/project, or you are on a desktop computer, answer 'yes'. Copying large datasets
|
||||
to the PSI archive system may take quite a while (minutes to hours).
|
||||
|
||||
If there are no errors, your data has been accepted into the data catalog! From now on, no changes should be made to the ingested data.
|
||||
This is important, since the next step is for the system to copy all the data to the CSCS Petabyte archive. Writing to tape is slow, so
|
||||
If there are no errors, your data has been accepted into the data catalog! From now on, no changes should be made to the ingested data.
|
||||
This is important, since the next step is for the system to copy all the data to the CSCS Petabyte archive. Writing to tape is slow, so
|
||||
this process may take several days, and it will fail if any modifications are detected.
|
||||
|
||||
If using the ``--autoarchive`` option as suggested above, your dataset should now be in the queue. Check the data catalog:
|
||||
[https://discovery.psi.ch](https://discovery.psi.ch). Your job should have status 'WorkInProgress'. You will receive an email when the ingestion
|
||||
If using the ``--autoarchive`` option as suggested above, your dataset should now be in the queue. Check the data catalog:
|
||||
[<https://discovery.psi.ch](https://discovery.psi.ch>). Your job should have status 'WorkInProgress'. You will receive an email when the ingestion
|
||||
is complete.
|
||||
|
||||
If you didn't use ``--autoarchive``, you need to manually move the dataset into the archive queue. From **discovery.psi.ch**, navigate to the 'Archive'
|
||||
tab. You should see the newly ingested dataset. Check the dataset and click **``Archive``**. You should see the status change from **``datasetCreated``** to
|
||||
If you didn't use ``--autoarchive``, you need to manually move the dataset into the archive queue. From **discovery.psi.ch**, navigate to the 'Archive'
|
||||
tab. You should see the newly ingested dataset. Check the dataset and click **``Archive``**. You should see the status change from **``datasetCreated``** to
|
||||
**``scheduleArchiveJob``**. This indicates that the data is in the process of being transferred to CSCS.
|
||||
|
||||
After a few days the dataset's status will change to **``datasetOnAchive``** indicating the data is stored. At this point it is safe to delete the data.
|
||||
|
||||
#### Useful commands
|
||||
|
||||
Running the datasetIngestor in dry mode (**without** ``--ingest``) finds most errors. However, it is sometimes convenient to find potential errors
|
||||
Running the datasetIngestor in dry mode (**without** ``--ingest``) finds most errors. However, it is sometimes convenient to find potential errors
|
||||
yourself with simple unix commands.
|
||||
|
||||
Find problematic filenames
|
||||
@@ -239,8 +232,8 @@ find . -name '*#autosave#' -delete
|
||||
Certificate invalid: name is not a listed principal
|
||||
```
|
||||
It indicates that no kerberos token was provided for authentication. You can avoid the warning by first running kinit (PSI linux systems).
|
||||
|
||||
* For decentral ingestion cases, the copy step is indicated by a message ``Running [/usr/bin/rsync -e ssh -avxz ...``. It is expected that this
|
||||
|
||||
* For decentral ingestion cases, the copy step is indicated by a message ``Running [/usr/bin/rsync -e ssh -avxz ...``. It is expected that this
|
||||
step will take a long time and may appear to have hung. You can check what files have been successfully transfered using rsync:
|
||||
|
||||
```bash
|
||||
@@ -250,7 +243,7 @@ step will take a long time and may appear to have hung. You can check what files
|
||||
where UID is the dataset ID (12345678-1234-1234-1234-123456789012) and PATH is the absolute path to your data. Note that rsync creates directories first and that the transfer order is not alphabetical in some cases, but it should be possible to see whether any data has transferred.
|
||||
|
||||
* There is currently a limit on the number of files per dataset (technically, the limit is from the total length of all file paths). It is recommended to break up datasets into 300'000 files or less.
|
||||
* If it is not possible or desirable to split data between multiple datasets, an alternate work-around is to package files into a tarball. For datasets which are already compressed, omit the -z option for a considerable speedup:
|
||||
* If it is not possible or desirable to split data between multiple datasets, an alternate work-around is to package files into a tarball. For datasets which are already compressed, omit the -z option for a considerable speedup:
|
||||
|
||||
```
|
||||
tar -f [output].tar [srcdir]
|
||||
@@ -271,7 +264,6 @@ step will take a long time and may appear to have hung. You can check what files
|
||||
/data/project/bio/myproject/archive $ datasetIngestor -copy -autoarchive -allowexistingsource -ingest metadata.json
|
||||
2019/11/06 11:04:43 Latest version: 1.1.11
|
||||
|
||||
|
||||
2019/11/06 11:04:43 Your version of this program is up-to-date
|
||||
2019/11/06 11:04:43 You are about to add a dataset to the === production === data catalog environment...
|
||||
2019/11/06 11:04:43 Your username:
|
||||
@@ -321,7 +313,6 @@ user_n@pb-archive.psi.ch's password:
|
||||
2019/11/06 11:05:04 The source folder /data/project/bio/myproject/archive is not centrally available (decentral use case).
|
||||
The data must first be copied to a rsync cache server.
|
||||
|
||||
|
||||
2019/11/06 11:05:04 Do you want to continue (Y/n)?
|
||||
Y
|
||||
2019/11/06 11:05:09 Created dataset with id 12.345.67890/12345678-1234-1234-1234-123456789012
|
||||
@@ -359,7 +350,7 @@ user_n@pb-archive.psi.ch's password:
|
||||
|
||||
### Publishing
|
||||
|
||||
After datasets are are ingested they can be assigned a public DOI. This can be included in publications and will make the datasets on http://doi.psi.ch.
|
||||
After datasets are are ingested they can be assigned a public DOI. This can be included in publications and will make the datasets on <http://doi.psi.ch>.
|
||||
|
||||
For instructions on this, please read the ['Publish' section in the ingest manual](https://scicatproject.github.io/documentation/Ingestor/ingestManual.html#sec-8).
|
||||
|
||||
|
||||
@@ -1,12 +1,4 @@
|
||||
---
|
||||
title: Connecting from a Linux Client
|
||||
#tags:
|
||||
keywords: linux, connecting, client, configuration, SSH, X11
|
||||
last_updated: 07 September 2022
|
||||
summary: "This document describes a recommended setup for a Linux client."
|
||||
sidebar: merlin7_sidebar
|
||||
permalink: /merlin7/connect-from-linux.html
|
||||
---
|
||||
# Connecting from a Linux Client
|
||||
|
||||
## SSH without X11 Forwarding
|
||||
|
||||
|
||||
@@ -1,12 +1,4 @@
|
||||
---
|
||||
title: Connecting from a MacOS Client
|
||||
#tags:
|
||||
keywords: MacOS, mac os, mac, connecting, client, configuration, SSH, X11
|
||||
last_updated: 07 September 2022
|
||||
summary: "This document describes a recommended setup for a MacOS client."
|
||||
sidebar: merlin7_sidebar
|
||||
permalink: /merlin7/connect-from-macos.html
|
||||
---
|
||||
# Connecting from a MacOS Client
|
||||
|
||||
## SSH without X11 Forwarding
|
||||
|
||||
@@ -37,7 +29,7 @@ we provide a small recipe for enabling X11 Forwarding in MacOS.
|
||||
|
||||
* For enabling client X11 forwarding, add the following to the start of ``~/.ssh/config``
|
||||
to implicitly add ``-X`` to all ssh connections:
|
||||
|
||||
|
||||
```bash
|
||||
ForwardAgent yes
|
||||
ForwardX11Trusted yes
|
||||
|
||||
@@ -4,8 +4,9 @@
|
||||
|
||||
PuTTY is one of the most common tools for SSH.
|
||||
|
||||
Check, if the following software packages are installed on the Windows workstation by
|
||||
Check, if the following software packages are installed on the Windows workstation by
|
||||
inspecting the *Start* menu (hint: use the *Search* box to save time):
|
||||
|
||||
* PuTTY (should be already installed)
|
||||
* *[Optional]* Xming (needed for [SSH with X11 Forwarding](#ssh-with-putty-with-x11-forwarding))
|
||||
|
||||
@@ -21,7 +22,6 @@ If they are missing, you can install them using the Software Kiosk icon on the D
|
||||
|
||||

|
||||
|
||||
|
||||
## SSH with PuTTY with X11 Forwarding
|
||||
|
||||
Official X11 Forwarding support is through NoMachine. Please follow the document
|
||||
@@ -29,9 +29,9 @@ Official X11 Forwarding support is through NoMachine. Please follow the document
|
||||
[{Accessing Merlin -> NoMachine}](../02-How-To-Use-Merlin/nomachine.md) for more details. However,
|
||||
we provide a small recipe for enabling X11 Forwarding in Windows.
|
||||
|
||||
Check, if the **Xming** is installed on the Windows workstation by inspecting the
|
||||
Check, if the **Xming** is installed on the Windows workstation by inspecting the
|
||||
*Start* menu (hint: use the *Search* box to save time). If missing, you can install it by
|
||||
using the Software Kiosk icon (should be located on the Desktop).
|
||||
using the Software Kiosk icon (should be located on the Desktop).
|
||||
|
||||
1. Ensure that a X server (**Xming**) is running. Otherwise, start it.
|
||||
|
||||
|
||||
@@ -1,12 +1,4 @@
|
||||
---
|
||||
title: Kerberos and AFS authentication
|
||||
#tags:
|
||||
keywords: kerberos, AFS, kinit, klist, keytab, tickets, connecting, client, configuration, slurm
|
||||
last_updated: 07 September 2022
|
||||
summary: "This document describes how to use Kerberos."
|
||||
sidebar: merlin7_sidebar
|
||||
permalink: /merlin7/kerberos.html
|
||||
---
|
||||
# Kerberos and AFS authentication
|
||||
|
||||
Projects and users have their own areas in the central PSI AFS service. In order
|
||||
to access to these areas, valid Kerberos and AFS tickets must be granted.
|
||||
@@ -58,7 +50,7 @@ Kerberos ticket is mandatory.
|
||||
krenew
|
||||
```
|
||||
|
||||
* Keep in mind that the maximum lifetime for granting tickets is 7 days, therefore `krenew` can not be used beyond that limit,
|
||||
* Keep in mind that the maximum lifetime for granting tickets is 7 days, therefore `krenew` can not be used beyond that limit,
|
||||
and then `kinit` should be used instead.
|
||||
|
||||
## Obtanining granting tickets with keytab
|
||||
@@ -95,8 +87,8 @@ For generating a **keytab**, one has to:
|
||||
```
|
||||
|
||||
Please note:
|
||||
* That you will need to add your password once. This step is required for generating the **keytab** file.
|
||||
* `ktutil`does **not** report an error if you enter a wrong password! You can test with the `kinit` command documented below. If `kinit` fails with an error message like "pre-authentication failed", this is usually due to a wrong password/key in the keytab file. In this case **you have to remove the keytab file** and re-run the `ktutil` command. See "Updating the keytab file" in the section below.
|
||||
* That you will need to add your password once. This step is required for generating the **keytab** file.
|
||||
* `ktutil`does **not** report an error if you enter a wrong password! You can test with the `kinit` command documented below. If `kinit` fails with an error message like "pre-authentication failed", this is usually due to a wrong password/key in the keytab file. In this case **you have to remove the keytab file** and re-run the `ktutil` command. See "Updating the keytab file" in the section below.
|
||||
|
||||
### Updating an existing keytab file
|
||||
|
||||
@@ -177,7 +169,7 @@ This is the **recommended** way. At the end of the job, is strongly recommended
|
||||
#SBATCH --output=run.out # Generate custom output file
|
||||
#SBATCH --error=run.err # Generate custom error file
|
||||
#SBATCH --nodes=1 # Uncomment and specify #nodes to use
|
||||
#SBATCH --ntasks=1 # Uncomment and specify #nodes to use
|
||||
#SBATCH --ntasks=1 # Uncomment and specify #nodes to use
|
||||
#SBATCH --cpus-per-task=1
|
||||
#SBATCH --constraint=xeon-gold-6152
|
||||
#SBATCH --hint=nomultithread
|
||||
|
||||
@@ -10,10 +10,8 @@ provides a helpful wrapper over the Gnome storage utilities (GIO and GVFS), and
|
||||
- FTP, SFTP
|
||||
- [complete list](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/using_the_desktop_environment_in_rhel_8/managing-storage-volumes-in-gnome_using-the-desktop-environment-in-rhel-8#gvfs-back-ends_managing-storage-volumes-in-gnome)
|
||||
|
||||
|
||||
## Usage
|
||||
|
||||
|
||||
### Start a session
|
||||
|
||||
First, start a new session. This will start a new bash shell in the current terminal where you can add further commands.
|
||||
@@ -38,7 +36,7 @@ merlin_rmount --select-mount
|
||||
Select the desired url using the arrow keys.
|
||||
|
||||

|
||||
|
||||
|
||||
From this list any of the standard supported endpoints can be mounted.
|
||||
|
||||
### Other endpoints
|
||||
@@ -47,7 +45,6 @@ Other endpoints can be mounted using the `merlin_rmount --mount <endpoint>` comm
|
||||
|
||||

|
||||
|
||||
|
||||
### Accessing Files
|
||||
|
||||
After mounting a volume the script will print the mountpoint. It should be of the form
|
||||
@@ -67,7 +64,6 @@ ln -s ~/mnt /run/user/$UID/gvfs
|
||||
|
||||
Files are accessible as long as the `merlin_rmount` shell remains open.
|
||||
|
||||
|
||||
### Disconnecting
|
||||
|
||||
To disconnect, close the session with one of the following:
|
||||
@@ -78,7 +74,6 @@ To disconnect, close the session with one of the following:
|
||||
|
||||
Disconnecting will unmount all volumes.
|
||||
|
||||
|
||||
## Alternatives
|
||||
|
||||
### Thunar
|
||||
|
||||
@@ -1,12 +1,4 @@
|
||||
---
|
||||
title: Merlin7 Tools
|
||||
#tags:
|
||||
keywords: merlin_quotas
|
||||
#last_updated: 07 September 2022
|
||||
#summary: ""
|
||||
sidebar: merlin7_sidebar
|
||||
permalink: /merlin7/tools.html
|
||||
---
|
||||
# Merlin7 Tools
|
||||
|
||||
## About
|
||||
|
||||
@@ -27,17 +19,17 @@ found on the [Storage page](storage.md#dir_classes).
|
||||
Simply calling `merlin_quotas` will show you a table of our quotas:
|
||||
|
||||
```console
|
||||
$ merlin_quotas
|
||||
$ merlin_quotas
|
||||
Path SpaceUsed SpaceQuota Space % FilesUsed FilesQuota Files %
|
||||
-------------- --------- ---------- ------- --------- ---------- -------
|
||||
/data/user 30.26G 1T 03% 367296 2097152 18%
|
||||
/data/user 30.26G 1T 03% 367296 2097152 18%
|
||||
└─ <USERNAME>
|
||||
/afs/psi.ch 3.4G 9.5G 36% 0 0 00%
|
||||
└─ user/<USERDIR>
|
||||
/data/project 2.457T 10T 25% 58 2097152 00%
|
||||
└─ bio/shared
|
||||
/data/project 338.3G 10T 03% 199391 2097152 10%
|
||||
└─ bio/hpce
|
||||
└─ user/<USERDIR>
|
||||
/data/project 2.457T 10T 25% 58 2097152 00%
|
||||
└─ bio/shared
|
||||
/data/project 338.3G 10T 03% 199391 2097152 10%
|
||||
└─ bio/hpce
|
||||
```
|
||||
|
||||
!!! tip
|
||||
@@ -105,4 +97,3 @@ If you are added/removed from a project, you can update this config file by
|
||||
calling `merlin_quotas genconf --force` (notice the `--force`, which will overwrite
|
||||
your existing config file) or by editing the file by hand (*not recommended*).
|
||||
|
||||
|
||||
|
||||
@@ -1,10 +1,4 @@
|
||||
---
|
||||
title: Remote Desktop Access to Merlin7
|
||||
keywords: NX, NoMachine, remote desktop access, login node, login001, login002, merlin7-nx-01, merlin7-nx, nx.psi.ch, VPN, browser access
|
||||
last_updated: 07 August 2024
|
||||
sidebar: merlin7_sidebar
|
||||
permalink: /merlin7/nomachine.html
|
||||
---
|
||||
# Remote Desktop Access to Merlin7
|
||||
|
||||
## Overview
|
||||
|
||||
@@ -21,7 +15,7 @@ If you are inside the PSI network, you can directly connect to the Merlin7 NoMac
|
||||
|
||||
#### Method 1: Using a Web Browser
|
||||
|
||||
Open your web browser and navigate to [https://merlin7-nx.psi.ch:4443](https://merlin7-nx.psi.ch:4443).
|
||||
Open your web browser and navigate to <https://merlin7-nx.psi.ch:4443>.
|
||||
|
||||
#### Method 2: Using the NoMachine Client
|
||||
|
||||
@@ -42,7 +36,7 @@ Documentation about the `nx.psi.ch` service can be found [here](https://www.psi.
|
||||
|
||||
##### Using a Web Browser
|
||||
|
||||
Open your web browser and navigate to [https://nx.psi.ch](https://nx.psi.ch).
|
||||
Open your web browser and navigate to <https://nx.psi.ch>.
|
||||
|
||||
##### Using the NoMachine Client
|
||||
|
||||
|
||||
@@ -1,16 +1,8 @@
|
||||
---
|
||||
title: Software repositories
|
||||
#tags:
|
||||
keywords: modules, software, stable, unstable, deprecated, spack, repository, repositories
|
||||
last_updated: 16 January 2024
|
||||
summary: "This page contains information about the different software repositories"
|
||||
sidebar: merlin7_sidebar
|
||||
permalink: /merlin7/software-repositories.html
|
||||
---
|
||||
# Software repositories
|
||||
|
||||
## Module Systems in Merlin7
|
||||
|
||||
Merlin7 provides a modular environment to ensure flexibility, compatibility, and optimized performance.
|
||||
Merlin7 provides a modular environment to ensure flexibility, compatibility, and optimized performance.
|
||||
The system supports three primary module types: PSI Environment Modules (PModules), Spack Modules, and Cray Environment Modules.
|
||||
|
||||
### PSI Environment Modules (PModules)
|
||||
@@ -35,7 +27,7 @@ Merlin7 also provides Spack modules, offering a modern and flexible package mana
|
||||
### Cray Environment Modules
|
||||
|
||||
Merlin7 also supports Cray Environment Modules, which include compilers, MPI implementations, and libraries optimized
|
||||
for Cray systems. However, Cray modules are not recommended as the default choice due to potential backward compatibility
|
||||
for Cray systems. However, Cray modules are not recommended as the default choice due to potential backward compatibility
|
||||
issues when the Cray Programming Environment (CPE) is upgraded to a newer version.
|
||||
|
||||
Recommendations:
|
||||
|
||||
@@ -1,13 +1,4 @@
|
||||
---
|
||||
title: Configuring SSH Keys in Merlin
|
||||
|
||||
#tags:
|
||||
keywords: linux, connecting, client, configuration, SSH, Keys, SSH-Keys, RSA, authorization, authentication
|
||||
last_updated: 15 Jul 2020
|
||||
summary: "This document describes how to deploy SSH Keys in Merlin."
|
||||
sidebar: merlin7_sidebar
|
||||
permalink: /merlin7/ssh-keys.html
|
||||
---
|
||||
# Configuring SSH Keys in Merlin
|
||||
|
||||
Merlin users sometimes will need to access the different Merlin services without being constantly requested by a password.
|
||||
One can achieve that with Kerberos authentication, however in some cases some software would require the setup of SSH Keys.
|
||||
@@ -22,14 +13,14 @@ User can check whether a SSH key already exists. These would be placed in the **
|
||||
is usually the default one, and files in there would be **`id_rsa`** (private key) and **`id_rsa.pub`** (public key).
|
||||
|
||||
```bash
|
||||
ls ~/.ssh/id*
|
||||
ls ~/.ssh/id*
|
||||
```
|
||||
|
||||
For creating **SSH RSA Keys**, one should:
|
||||
|
||||
1. Run `ssh-keygen`, a password will be requested twice. You **must remember** this password for the future.
|
||||
* Due to security reasons, ***always try protecting it with a password***. There is only one exception, when running ANSYS software, which in general should not use password to simplify the way of running the software in Slurm.
|
||||
* This will generate a private key **id_rsa**, and a public key **id_rsa.pub** in your **~/.ssh** directory.
|
||||
* Due to security reasons, ***always try protecting it with a password***. There is only one exception, when running ANSYS software, which in general should not use password to simplify the way of running the software in Slurm.
|
||||
* This will generate a private key **id_rsa**, and a public key **id_rsa.pub** in your **~/.ssh** directory.
|
||||
2. Add your public key to the **`authorized_keys`** file, and ensure proper permissions for that file, as follows:
|
||||
|
||||
```bash
|
||||
@@ -92,7 +83,7 @@ to the **ssh-agent**. This must be done once per SSH session, as follows:
|
||||
ssh-add -l | grep "/data/user/$(whoami)/.ssh"
|
||||
```
|
||||
|
||||
* If no key is returned in the previous step, you have to add the private key identity to the authentication agent.
|
||||
* If no key is returned in the previous step, you have to add the private key identity to the authentication agent.
|
||||
You will be requested for the **passphrase** of your key, and it can be done by running:
|
||||
|
||||
```bash
|
||||
@@ -111,7 +102,7 @@ However, for NoMachine one always need to add the private key identity to the au
|
||||
```bash
|
||||
ssh-add -l | grep "/data/user/$(whoami)/.ssh"
|
||||
```
|
||||
2. If no key is returned in the previous step, you have to add the private key identity to the authentication agent.
|
||||
2. If no key is returned in the previous step, you have to add the private key identity to the authentication agent.
|
||||
You will be requested for the **passphrase** of your key, and it can be done by running:
|
||||
|
||||
```bash
|
||||
|
||||
@@ -1,13 +1,4 @@
|
||||
---
|
||||
title: Merlin7 Storage
|
||||
#tags:
|
||||
keywords: storage, /data/user, /data/software, /data/project, /scratch, /data/scratch/shared, quota, export, user, project, scratch, data, data/scratch/shared, merlin_quotas
|
||||
#last_updated: 07 September 2022
|
||||
#summary: ""
|
||||
sidebar: merlin7_sidebar
|
||||
redirect_from: /merlin7/data-directories.html
|
||||
permalink: /merlin7/storage.html
|
||||
---
|
||||
# Merlin7 Storage
|
||||
|
||||
## Introduction
|
||||
|
||||
@@ -30,13 +21,13 @@ Some of the Merlin7 directories have quotas applied. A way for checking the quot
|
||||
This command is useful to show all quotas for the different user storage directories and partitions (including AFS). To check your quotas, please run:
|
||||
|
||||
```console
|
||||
$ merlin_quotas
|
||||
$ merlin_quotas
|
||||
Path SpaceUsed SpaceQuota Space % FilesUsed FilesQuota Files %
|
||||
-------------- --------- ---------- ------- --------- ---------- -------
|
||||
/data/user 30.26G 1T 03% 367296 2097152 18%
|
||||
/data/user 30.26G 1T 03% 367296 2097152 18%
|
||||
└─ <USERNAME>
|
||||
/afs/psi.ch 3.4G 9.5G 36% 0 0 0%
|
||||
└─ user/<USERDIR>
|
||||
/afs/psi.ch 3.4G 9.5G 36% 0 0 0%
|
||||
└─ user/<USERDIR>
|
||||
/data/scratch 688.9M 2T 00% 368471 0 00%
|
||||
└─ shared
|
||||
/data/project 3.373T 11T 31% 425644 2097152 20%
|
||||
@@ -117,7 +108,7 @@ Directory policies:
|
||||
* No backup policy is applied for the user home directories: **users are responsible for backing up their data**.
|
||||
|
||||
Home directory quotas are defined in a per Lustre project basis. The quota can be checked using the `merlin_quotas` command described
|
||||
[above](storage.md#how-to-check-quotas).
|
||||
[above](storage.md#how-to-check-quotas).
|
||||
|
||||
### Project data directory
|
||||
|
||||
@@ -151,7 +142,7 @@ Directory policies:
|
||||
|
||||
* Read **[Important: Code of Conduct](../01-Quick-Start-Guide/code-of-conduct.md)** for more information about Merlin7 policies.
|
||||
* It is **forbidden** to use the data directories as `/scratch` area during a job's runtime, i.e. for high throughput I/O for a job's temporary files.
|
||||
* Please Use `/scratch`, `/data/scratch/shared` for this purpose.
|
||||
* Please Use `/scratch`, `/data/scratch/shared` for this purpose.
|
||||
* No backups: users are responsible for managing the backups of their data directories.
|
||||
|
||||
#### Dedicated project directories
|
||||
@@ -190,6 +181,6 @@ Scratch directories policies:
|
||||
* Read **[Important: Code of Conduct](../01-Quick-Start-Guide/code-of-conduct.md)** for more information about Merlin7 policies.
|
||||
* By default, *always* use **local** first and only use **shared** if your specific use case requires it.
|
||||
* Temporary files *must be deleted at the end of the job by the user*.
|
||||
* Remaining files will be deleted by the system if detected.
|
||||
* Remaining files will be deleted by the system if detected.
|
||||
* Files not accessed within 28 days will be automatically cleaned up by the system.
|
||||
* If for some reason the scratch areas get full, admins have the rights to cleanup the oldest data.
|
||||
|
||||
@@ -1,26 +1,19 @@
|
||||
---
|
||||
title: Transferring Data
|
||||
#tags:
|
||||
keywords: transferring data, data transfer, rsync, winscp, copy data, copying, sftp, import, export, hop, vpn
|
||||
last_updated: 24 August 2023
|
||||
#summary: ""
|
||||
sidebar: merlin7_sidebar
|
||||
permalink: /merlin7/transfer-data.html
|
||||
---
|
||||
# Transferring Data
|
||||
|
||||
## Overview
|
||||
|
||||
Most data transfer methods support both sending and receiving, so you may initiate the transfer from either **Merlin** or the other system — depending on **network visibility**.
|
||||
- **From PSI Network to Merlin:** Merlin login nodes are visible from the PSI network, so direct transfers using `rsync`, or **ftp** are generally preferable. Transfers **from Merlin7 to PSI may require special firewall rules**.
|
||||
- **From Merlin to the Internet:** Merlin login nodes can access the internet with a **limited set of protocols**:
|
||||
- HTTP-based protocols on ports `80` or `445` (e.g., HTTPS, WebDAV).
|
||||
- Other protocols (e.g., SSH, FTP, rsync daemon mode) require admin configuration, may only work with specific hosts, and might need new firewall rules.
|
||||
- **From the Internet to PSI:** Systems outside PSI can access the [PSI Data Transfer Service](https://www.psi.ch/en/photon-science-data-services/data-transfer) at `datatransfer.psi.ch` using SSH-based protocols or [Globus](https://www.globus.org/).
|
||||
|
||||
> SSH-based protocols using port `22` **to most PSI servers** are generally **not permitted**.
|
||||
> * However, **transfers from any PSI host to Merlin7 using port 22 are allowed**.
|
||||
>
|
||||
> Port `21` is also available for FTP transfers from PSI to Merlin7.
|
||||
* **From PSI Network to Merlin:** Merlin login nodes are visible from the PSI network, so direct transfers using `rsync`, or **ftp** are generally preferable. Transfers **from Merlin7 to PSI may require special firewall rules**.
|
||||
* **From Merlin to the Internet:** Merlin login nodes can access the internet with a **limited set of protocols**:
|
||||
* HTTP-based protocols on ports `80` or `445` (e.g., HTTPS, WebDAV).
|
||||
* Other protocols (e.g., SSH, FTP, rsync daemon mode) require admin configuration, may only work with specific hosts, and might need new firewall rules.
|
||||
* **From the Internet to PSI:** Systems outside PSI can access the [PSI Data Transfer Service](https://www.psi.ch/en/photon-science-data-services/data-transfer) at `datatransfer.psi.ch` using SSH-based protocols or [Globus](https://www.globus.org/).
|
||||
|
||||
!!! note
|
||||
SSH-based protocols using port `22` **to most PSI servers** are generally **not permitted**.
|
||||
However, **transfers from any PSI host to Merlin7 using port 22 are allowed**.
|
||||
Port `21` is also available for FTP transfers from PSI to Merlin7.
|
||||
|
||||
### Choosing the best transfer method
|
||||
|
||||
@@ -46,6 +39,7 @@ The following methods transfer data directly via the [login nodes](../01-Quick-S
|
||||
### Rsync (Recommended for Linux/macOS)
|
||||
|
||||
Rsync is the **preferred** method for small datasets from Linux/macOS systems. It supports **resuming interrupted transfers** and **skips already transferred files**. Syntax:
|
||||
|
||||
```bash
|
||||
rsync -avAHXS <src> <dst>
|
||||
```
|
||||
@@ -65,12 +59,15 @@ rsync -avAHXS ~/localdata $USER@login001.merlin7.psi.ch:/data/project/general/my
|
||||
### SCP
|
||||
|
||||
SCP works similarly to `rsync` but **does not support resuming** interrupted transfers. It may be used for quick one-off transfers. Example:
|
||||
|
||||
```bash
|
||||
scp ~/localfile.txt $USER@login001.merlin7.psi.ch:/data/project/general/myproject/
|
||||
```
|
||||
|
||||
### Secure FTP
|
||||
|
||||
A `vsftpd` service is available on the login nodes, providing high-speed transfers. Choose the server based on your **speed vs. encryption** needs:
|
||||
|
||||
* **`login001.merlin7.psi.ch`:** Encrypted control & data channels.
|
||||
**Use if your data is sensitive**. **Slower**, but secure.
|
||||
* **`service03.merlin7.psi.ch`**: Encrypted control channel only.
|
||||
@@ -80,14 +77,16 @@ A `vsftpd` service is available on the login nodes, providing high-speed transfe
|
||||
The **control channel** is always **encrypted**, therefore, authentication is encrypted and secured.
|
||||
|
||||
## UI-based Clients for Data Transfer
|
||||
|
||||
### WinSCP (Windows)
|
||||
|
||||
Available in the **Software Kiosk** on PSI Windows machines.
|
||||
* Using your PSI credentials, connect to
|
||||
* when using port 22, connect to `login001.merlin7.psi.ch` or `login002.merlin7.psi.ch`.
|
||||
* when using port 21, connect to:
|
||||
* `ftp-encrypted.merlin7.psi.ch`: **Fast** transfer rates. **Both** control and data **channels encrypted**.
|
||||
* `service03.merlin7.psi.ch`: **Fastest** transfer rates, but **data channel not encrypted**.
|
||||
|
||||
* Using your PSI credentials, connect to
|
||||
* when using port 22, connect to `login001.merlin7.psi.ch` or `login002.merlin7.psi.ch`.
|
||||
* when using port 21, connect to:
|
||||
* `ftp-encrypted.merlin7.psi.ch`: **Fast** transfer rates. **Both** control and data **channels encrypted**.
|
||||
* `service03.merlin7.psi.ch`: **Fastest** transfer rates, but **data channel not encrypted**.
|
||||
* Drag and drop files between your PC and Merlin.
|
||||
|
||||
* FTP (port 21)
|
||||
@@ -95,30 +94,34 @@ Available in the **Software Kiosk** on PSI Windows machines.
|
||||
### FileZilla (Linux/MacOS/Windows)
|
||||
|
||||
Download from [FileZilla Project](https://filezilla-project.org/), or install from your Linux software repositories if available.
|
||||
* Using your PSI credentials, connect to
|
||||
* when using port 22, connect to `login001.merlin7.psi.ch` or `login002.merlin7.psi.ch`.
|
||||
* when using port 21, connect to:
|
||||
* `ftp-encrypted.merlin7.psi.ch`: **Fast** transfer rates. **Both** control and data **channels encrypted**.
|
||||
* `service03.merlin7.psi.ch`: **Fastest** transfer rates, but **data channel not encrypted**.
|
||||
|
||||
* Using your PSI credentials, connect to
|
||||
* when using port 22, connect to `login001.merlin7.psi.ch` or `login002.merlin7.psi.ch`.
|
||||
* when using port 21, connect to:
|
||||
* `ftp-encrypted.merlin7.psi.ch`: **Fast** transfer rates. **Both** control and data **channels encrypted**.
|
||||
* `service03.merlin7.psi.ch`: **Fastest** transfer rates, but **data channel not encrypted**.
|
||||
* Supports drag-and-drop file transfers.
|
||||
|
||||
## Sharing Files with SWITCHfilesender
|
||||
|
||||
**[SWITCHfilesender](https://filesender.switch.ch/filesender2/?s=upload)** is a Swiss-hosted installation of the [FileSender](https://filesender.org/) project — a web-based application that allows authenticated users to securely and easily send **arbitrarily large files** to other users. Features:
|
||||
- **Secure large file transfers:** Send files that exceed normal email attachment limits.
|
||||
- **Time-limited availability:** Files are automatically deleted after the chosen expiration date or number of downloads.
|
||||
- **Voucher system:** Authenticated users can send upload vouchers to external recipients without an account.
|
||||
- **Designed for research & education:** Developed to meet the needs of universities and research institutions.
|
||||
|
||||
* **Secure large file transfers:** Send files that exceed normal email attachment limits.
|
||||
* **Time-limited availability:** Files are automatically deleted after the chosen expiration date or number of downloads.
|
||||
* **Voucher system:** Authenticated users can send upload vouchers to external recipients without an account.
|
||||
* **Designed for research & education:** Developed to meet the needs of universities and research institutions.
|
||||
|
||||
About the authentication:
|
||||
- It uses **SimpleSAMLphp**, supporting multiple authentication mechanisms: SAML2, LDAP, RADIUS and more.
|
||||
- It's fully integrated with PSI's **Authentication and Authorization Infrastructure (AAI)**.
|
||||
- PSI employees can log in using their PSI account:
|
||||
|
||||
* It uses **SimpleSAMLphp**, supporting multiple authentication mechanisms: SAML2, LDAP, RADIUS and more.
|
||||
* It's fully integrated with PSI's **Authentication and Authorization Infrastructure (AAI)**.
|
||||
* PSI employees can log in using their PSI account:
|
||||
1. Open [SWITCHfilesender](https://filesender.switch.ch/filesender2/?s=upload).
|
||||
2. Select **PSI** as the institution.
|
||||
3. Authenticate with your PSI credentials.
|
||||
|
||||
The service is designed to **send large files for temporary availability**, not as a permanent publishing platform. Typical use case:
|
||||
|
||||
1. Upload a file.
|
||||
2. Share the download link with a recipient.
|
||||
3. File remains available until the specified **expiration date** is reached, or the **download limit** is reached.
|
||||
@@ -130,10 +133,11 @@ The service is designed to **send large files for temporary availability**, not
|
||||
## PSI Data Transfer
|
||||
|
||||
From August 2024, Merlin is connected to the **[PSI Data Transfer](https://www.psi.ch/en/photon-science-data-services/data-transfer)** service,
|
||||
`datatransfer.psi.ch`. This is a central service managed by the **[Linux team](https://linux.psi.ch/index.html)**. However, any problems or questions related to it can be directly
|
||||
`datatransfer.psi.ch`. This is a central service managed by the **[Linux team](https://linux.psi.ch/index.html)**. However, any problems or questions related to it can be directly
|
||||
[reported](../99-support/contact.md) to the Merlin administrators, which will forward the request if necessary.
|
||||
|
||||
The PSI Data Transfer servers supports the following protocols:
|
||||
|
||||
* Data Transfer - SSH (scp / rsync)
|
||||
* Data Transfer - Globus
|
||||
|
||||
@@ -150,27 +154,25 @@ Therefore, having the Microsoft Authenticator App is required as explained [here
|
||||
## Connecting to Merlin7 from outside PSI
|
||||
|
||||
Merlin7 is fully accessible from within the PSI network. To connect from outside you can use:
|
||||
- [VPN](https://www.psi.ch/en/computing/vpn) ([alternate instructions](https://intranet.psi.ch/BIO/ComputingVPN))
|
||||
- [SSH hopx](https://www.psi.ch/en/computing/ssh-hop)
|
||||
* Please avoid transferring big amount data through **hop**
|
||||
- [No Machine](nomachine.md)
|
||||
* Remote Interactive Access through [**'nx.psi.ch'**](https://www.psi.ch/en/photon-science-data-services/remote-interactive-access)
|
||||
* Please avoid transferring big amount of data through **NoMachine**
|
||||
|
||||
{% comment %}
|
||||
* [VPN](https://www.psi.ch/en/computing/vpn) ([alternate instructions](https://intranet.psi.ch/BIO/ComputingVPN))
|
||||
* [SSH hopx](https://www.psi.ch/en/computing/ssh-hop)
|
||||
* Please avoid transferring big amount data through **hop**
|
||||
* [No Machine](nomachine.md)
|
||||
* Remote Interactive Access through [**'nx.psi.ch'**](https://www.psi.ch/en/photon-science-data-services/remote-interactive-access)
|
||||
* Please avoid transferring big amount of data through **NoMachine**
|
||||
|
||||
## Connecting from Merlin7 to outside file shares
|
||||
|
||||
### `merlin_rmount` command
|
||||
|
||||
Merlin provides a command for mounting remote file systems, called `merlin_rmount`. This
|
||||
provides a helpful wrapper over the Gnome storage utilities, and provides support for a wide range of remote file formats, including
|
||||
- SMB/CIFS (Windows shared folders)
|
||||
- WebDav
|
||||
- AFP
|
||||
- FTP, SFTP
|
||||
- [others](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/using_the_desktop_environment_in_rhel_8/managing-storage-volumes-in-gnome_using-the-desktop-environment-in-rhel-8#gvfs-back-ends_managing-storage-volumes-in-gnome)
|
||||
|
||||
* SMB/CIFS (Windows shared folders)
|
||||
* WebDav
|
||||
* AFP
|
||||
* FTP, SFTP
|
||||
* [others](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/using_the_desktop_environment_in_rhel_8/managing-storage-volumes-in-gnome_using-the-desktop-environment-in-rhel-8#gvfs-back-ends_managing-storage-volumes-in-gnome)
|
||||
|
||||
[More instruction on using `merlin_rmount`](merlin-rmount.md)
|
||||
{% endcomment %}
|
||||
|
||||
|
||||
@@ -24,17 +24,17 @@ Is run is used to run parallel jobs in the batch system. It can be used within a
|
||||
(which can be run with ``sbatch``), or within a job allocation (which can be run with ``salloc``).
|
||||
Also, it can be used as a direct command (in example, from the login nodes).
|
||||
|
||||
When used inside a batch script or during a job allocation, ``srun`` is constricted to the
|
||||
amount of resources allocated by the ``sbatch``/``salloc`` commands. In ``sbatch``, usually
|
||||
these resources are defined inside the batch script with the format ``#SBATCH <option>=<value>``.
|
||||
In other words, if you define in your batch script or allocation 88 tasks (and 1 thread / core)
|
||||
and 2 nodes, ``srun`` is constricted to these amount of resources (you can use less, but never
|
||||
When used inside a batch script or during a job allocation, ``srun`` is constricted to the
|
||||
amount of resources allocated by the ``sbatch``/``salloc`` commands. In ``sbatch``, usually
|
||||
these resources are defined inside the batch script with the format ``#SBATCH <option>=<value>``.
|
||||
In other words, if you define in your batch script or allocation 88 tasks (and 1 thread / core)
|
||||
and 2 nodes, ``srun`` is constricted to these amount of resources (you can use less, but never
|
||||
exceed those limits).
|
||||
|
||||
When used from the login node, usually is used to run a specific command or software in an
|
||||
interactive way. ``srun`` is a blocking process (it will block bash prompt until the ``srun``
|
||||
command finishes, unless you run it in background with ``&``). This can be very useful to run
|
||||
interactive software which pops up a Window and then submits jobs or run sub-tasks in the
|
||||
When used from the login node, usually is used to run a specific command or software in an
|
||||
interactive way. ``srun`` is a blocking process (it will block bash prompt until the ``srun``
|
||||
command finishes, unless you run it in background with ``&``). This can be very useful to run
|
||||
interactive software which pops up a Window and then submits jobs or run sub-tasks in the
|
||||
background (in example, **Relion**, **cisTEM**, etc.)
|
||||
|
||||
Refer to ``man srun`` for exploring all possible options for that command.
|
||||
@@ -65,7 +65,7 @@ prompt a new shell on the first allocated node). However, this behaviour can be
|
||||
a shell (`$SHELL`) at the end of the `salloc` command. In example:
|
||||
|
||||
```bash
|
||||
# Typical 'salloc' call
|
||||
# Typical 'salloc' call
|
||||
salloc --clusters=merlin7 --partition=interactive -N 2 -n 2
|
||||
|
||||
# Custom 'salloc' call
|
||||
@@ -111,20 +111,21 @@ salloc: Relinquishing job allocation 165
|
||||
|
||||
#### Graphical access
|
||||
|
||||
[NoMachine](../02-How-To-Use-Merlin/nomachine.md) is the official supported service for graphical
|
||||
access in the Merlin cluster. This service is running on the login nodes. Check the
|
||||
document [{Accessing Merlin -> NoMachine}](../02-How-To-Use-Merlin/nomachine.md) for details about
|
||||
[NoMachine](../02-How-To-Use-Merlin/nomachine.md) is the official supported service for graphical
|
||||
access in the Merlin cluster. This service is running on the login nodes. Check the
|
||||
document [{Accessing Merlin -> NoMachine}](../02-How-To-Use-Merlin/nomachine.md) for details about
|
||||
how to connect to the **NoMachine** service in the Merlin cluster.
|
||||
|
||||
For other non officially supported graphical access (X11 forwarding):
|
||||
|
||||
* For Linux clients, please follow [{How To Use Merlin -> Accessing from Linux Clients}](../02-How-To-Use-Merlin/connect-from-linux.md)
|
||||
|
||||
* For Windows clients, please follow [{How To Use Merlin -> Accessing from Windows Clients}](../02-How-To-Use-Merlin/connect-from-windows.md)
|
||||
* For MacOS clients, please follow [{How To Use Merlin -> Accessing from MacOS Clients}](../02-How-To-Use-Merlin/connect-from-macos.md)
|
||||
|
||||
### 'srun' with x11 support
|
||||
|
||||
Merlin6 and merlin7 clusters allow running any windows based applications. For that, you need to
|
||||
Merlin6 and merlin7 clusters allow running any windows based applications. For that, you need to
|
||||
add the option ``--x11`` to the ``srun`` command. In example:
|
||||
|
||||
```bash
|
||||
@@ -146,7 +147,7 @@ srun --clusters=merlin7 --partition=interactive --x11 --pty bash
|
||||
<pre class="terminal code highlight js-syntax-highlight plaintext" lang="plaintext" markdown="false">
|
||||
caubet_m@login001:~> srun --clusters=merlin7 --partition=interactive --x11 sview
|
||||
|
||||
caubet_m@login001:~>
|
||||
caubet_m@login001:~>
|
||||
|
||||
caubet_m@login001:~> srun --clusters=merlin7 --partition=interactive --x11 --pty bash
|
||||
|
||||
@@ -162,7 +163,7 @@ exit
|
||||
|
||||
### 'salloc' with x11 support
|
||||
|
||||
**Merlin6** and **merlin7** clusters allow running any windows based applications. For that, you need to
|
||||
**Merlin6** and **merlin7** clusters allow running any windows based applications. For that, you need to
|
||||
add the option ``--x11`` to the ``salloc`` command. In example:
|
||||
|
||||
```bash
|
||||
@@ -172,7 +173,7 @@ salloc --clusters=merlin7 --partition=interactive --x11 sview
|
||||
will popup a X11 based slurm view of the cluster.
|
||||
|
||||
In the same manner, you can create a bash shell with x11 support. For doing that, you need
|
||||
to add to run just ``salloc --clusters=merlin7 --partition=interactive --x11``. Once resource is allocated, from
|
||||
to add to run just ``salloc --clusters=merlin7 --partition=interactive --x11``. Once resource is allocated, from
|
||||
there you can interactively run X11 and non-X11 based commands.
|
||||
|
||||
```bash
|
||||
@@ -187,10 +188,10 @@ salloc: Granted job allocation 174
|
||||
salloc: Nodes cn001 are ready for job
|
||||
salloc: Relinquishing job allocation 174
|
||||
|
||||
caubet_m@login001:~> salloc --clusters=merlin7 --partition=interactive --x11
|
||||
caubet_m@login001:~> salloc --clusters=merlin7 --partition=interactive --x11
|
||||
salloc: Granted job allocation 175
|
||||
salloc: Nodes cn001 are ready for job
|
||||
caubet_m@cn001:~>
|
||||
caubet_m@cn001:~>
|
||||
|
||||
caubet_m@cn001:~> sview
|
||||
|
||||
|
||||
@@ -1,12 +1,4 @@
|
||||
---
|
||||
title: Slurm cluster 'merlin7'
|
||||
#tags:
|
||||
keywords: configuration, partitions, node definition
|
||||
#last_updated: 24 Mai 2023
|
||||
summary: "This document describes a summary of the Merlin7 configuration."
|
||||
sidebar: merlin7_sidebar
|
||||
permalink: /merlin7/merlin7-configuration.html
|
||||
---
|
||||
# Slurm cluster 'merlin7'
|
||||
|
||||
This documentation shows basic Slurm configuration and options needed to run jobs in the Merlin7 cluster.
|
||||
|
||||
@@ -14,10 +6,10 @@ This documentation shows basic Slurm configuration and options needed to run job
|
||||
|
||||
### Hardware
|
||||
|
||||
* 2 CPU-only login nodes
|
||||
* 77 CPU-only compute nodes
|
||||
* 5 GPU A100 nodes
|
||||
* 8 GPU Grace Hopper nodes
|
||||
* 2 CPU-only login nodes
|
||||
* 77 CPU-only compute nodes
|
||||
* 5 GPU A100 nodes
|
||||
* 8 GPU Grace Hopper nodes
|
||||
|
||||
The specification of the node types is:
|
||||
|
||||
@@ -51,9 +43,9 @@ The appliance is built of several storage servers:
|
||||
With effective storage capacity of:
|
||||
|
||||
* 10 PB HDD
|
||||
* value visible on linux: HDD 9302.4 TiB
|
||||
* value visible on linux: HDD 9302.4 TiB
|
||||
* 162 TB SSD
|
||||
* value visible on linux: SSD 151.6 TiB
|
||||
* value visible on linux: SSD 151.6 TiB
|
||||
* 23.6 TiB on Metadata
|
||||
|
||||
The storage is directly connected to the cluster (and each individual node) through the Slingshot NIC.
|
||||
|
||||
@@ -1,12 +1,4 @@
|
||||
---
|
||||
title: Slurm merlin7 Configuration
|
||||
#tags:
|
||||
keywords: configuration, partitions, node definition
|
||||
#last_updated: 24 Mai 2023
|
||||
summary: "This document describes a summary of the Merlin7 Slurm CPU-based configuration."
|
||||
sidebar: merlin7_sidebar
|
||||
permalink: /merlin7/slurm-configuration.html
|
||||
---
|
||||
# Slurm merlin7 Configuration
|
||||
|
||||
This documentation shows basic Slurm configuration and options needed to run jobs in the Merlin7 cluster.
|
||||
|
||||
@@ -14,7 +6,7 @@ This documentation shows basic Slurm configuration and options needed to run job
|
||||
|
||||
### CPU public partitions
|
||||
|
||||
| PartitionName | DefaultTime | MaxTime | Priority | Account | Per Job Limits | Per User Limits |
|
||||
| PartitionName | DefaultTime | MaxTime | Priority | Account | Per Job Limits | Per User Limits |
|
||||
| -----------------: | -----------: | ----------: | -------: | ---------------: | --------------------: | --------------------: |
|
||||
| **<u>general</u>** | 1-00:00:00 | 7-00:00:00 | Low | <u>merlin</u> | cpu=1024,mem=1920G | cpu=1024,mem=1920G |
|
||||
| **daily** | 0-01:00:00 | 1-00:00:00 | Medium | <u>merlin</u> | cpu=1024,mem=1920G | cpu=2048,mem=3840G |
|
||||
@@ -31,7 +23,7 @@ This documentation shows basic Slurm configuration and options needed to run job
|
||||
| **a100-daily** | 0-01:00:00 | 1-00:00:00 | Medium | <u>merlin</u> | gres/gpu=8 | gres/gpu=8 |
|
||||
| **a100-hourly** | 0-00:30:00 | 0-01:00:00 | High | <u>merlin</u> | gres/gpu=8 | gres/gpu=8 |
|
||||
| **a100-interactive** | 0-01:00:00 | 0-12:00:00 | Very High | <u>merlin</u> | cpu=16,gres/gpu=1,mem=60G,node=1 | cpu=16,gres/gpu=1,mem=60G,node=1 |
|
||||
|
||||
|
||||
#### Grace-Hopper nodes
|
||||
|
||||
| PartitionName | DefaultTime | MaxTime | Priority | Account | Per Job Limits | Per User Limits |
|
||||
@@ -53,8 +45,9 @@ However, when necessary, one can specify the cluster as follows:
|
||||
### CPU general configuration
|
||||
|
||||
The **Merlin7 CPU cluster** is configured with the **`CR_CORE_MEMORY`** and **`CR_ONE_TASK_PER_CORE`** options.
|
||||
|
||||
* This configuration treats both cores and memory as consumable resources.
|
||||
* Since the nodes are running with **hyper-threading** enabled, each core thread is counted as a CPU
|
||||
* Since the nodes are running with **hyper-threading** enabled, each core thread is counted as a CPU
|
||||
to fulfill a job's resource requirements.
|
||||
|
||||
By default, Slurm will allocate one task per core, which means:
|
||||
@@ -75,15 +68,15 @@ scripts accordingly.
|
||||
|
||||
Notes on memory configuration:
|
||||
* **Memory allocation options:** To request additional memory, use the following options in your submission script:
|
||||
* **`--mem=<mem_in_MB>`**: Allocates memory per node.
|
||||
* **`--mem-per-cpu=<mem_in_MB>`**: Allocates memory per CPU (equivalent to a core thread).
|
||||
* **`--mem=<mem_in_MB>`**: Allocates memory per node.
|
||||
* **`--mem-per-cpu=<mem_in_MB>`**: Allocates memory per CPU (equivalent to a core thread).
|
||||
|
||||
The total memory requested cannot exceed the **`MaxMemPerNode`** value.
|
||||
* **Impact of disabling Hyper-Threading:** Using the **`--hint=nomultithread`** option disables one thread per core,
|
||||
* **Impact of disabling Hyper-Threading:** Using the **`--hint=nomultithread`** option disables one thread per core,
|
||||
effectively halving the number of available CPUs. Consequently, memory allocation will also be halved unless explicitly
|
||||
adjusted.
|
||||
|
||||
For MPI-based jobs, where performance generally improves with single-threaded CPUs, this option is recommended.
|
||||
For MPI-based jobs, where performance generally improves with single-threaded CPUs, this option is recommended.
|
||||
In such cases, you should double the **`--mem-per-cpu`** value to account for the reduced number of threads.
|
||||
|
||||
!!! tip
|
||||
@@ -93,19 +86,19 @@ adjusted.
|
||||
|
||||
In the `merlin7` CPU cluster, we enforce certain limits on jobs and users to ensure fair resource usage and prevent
|
||||
overuse by a single user or job. These limits aim to balance resource availability while maintaining overall cluster
|
||||
efficiency. However, applying limits can occasionally impact the cluster’s utilization. For example, user-specific
|
||||
efficiency. However, applying limits can occasionally impact the cluster’s utilization. For example, user-specific
|
||||
limits may result in pending jobs even when many nodes are idle due to low activity.
|
||||
|
||||
On the other hand, these limits also enhance cluster efficiency by preventing scenarios such as a single job monopolizing
|
||||
all available resources, which could block other jobs from running. Without job size limits, for instance, a large job
|
||||
all available resources, which could block other jobs from running. Without job size limits, for instance, a large job
|
||||
might drain the entire cluster to satisfy its resource request, a situation that is generally undesirable.
|
||||
|
||||
Thus, setting appropriate limits is essential to maintain fair resource usage while optimizing cluster efficiency. These
|
||||
limits should allow for a mix of jobs of varying sizes and types, including single-core and parallel jobs, to coexist
|
||||
Thus, setting appropriate limits is essential to maintain fair resource usage while optimizing cluster efficiency. These
|
||||
limits should allow for a mix of jobs of varying sizes and types, including single-core and parallel jobs, to coexist
|
||||
effectively.
|
||||
|
||||
To implement these limits, **we utilize Quality of Service (QoS)**. Different QoS policies are defined and applied
|
||||
**to specific partitions** in line with the established resource allocation policies. The table below outlines the
|
||||
To implement these limits, **we utilize Quality of Service (QoS)**. Different QoS policies are defined and applied
|
||||
**to specific partitions** in line with the established resource allocation policies. The table below outlines the
|
||||
various QoS definitions applicable to the merlin7 CPU-based cluster. Here:
|
||||
* `MaxTRES` specifies resource limits per job.
|
||||
* `MaxTRESPU` specifies resource limits per user.
|
||||
@@ -119,7 +112,7 @@ various QoS definitions applicable to the merlin7 CPU-based cluster. Here:
|
||||
| **cpu_interactive** | cpu=16,mem=30G,node=1 | cpu=32,mem=60G,node=1 | partition |
|
||||
|
||||
Where:
|
||||
* **`normal` QoS:** This QoS has no limits and is typically applied to partitions that do not require user or job
|
||||
* **`normal` QoS:** This QoS has no limits and is typically applied to partitions that do not require user or job
|
||||
restrictions.
|
||||
* **`cpu_general` QoS:** This is the **default QoS** for `merlin7` _users_. It limits the total resources available to each
|
||||
user. Additionally, this QoS is applied to the `general` partition, enforcing restrictions at the partition level and
|
||||
@@ -172,17 +165,17 @@ Similarly, if no partition is specified, jobs are automatically submitted to the
|
||||
partitions provide higher priority and ensure quicker scheduling compared
|
||||
to **general**, which has limited node availability.
|
||||
|
||||
The **`hourly`** partition may include private nodes as an additional buffer. However, the current Slurm partition configuration, governed
|
||||
by **`PriorityTier`**, ensures that jobs submitted to private partitions are prioritized and processed first. As a result, access to the
|
||||
The **`hourly`** partition may include private nodes as an additional buffer. However, the current Slurm partition configuration, governed
|
||||
by **`PriorityTier`**, ensures that jobs submitted to private partitions are prioritized and processed first. As a result, access to the
|
||||
**`hourly`** partition might experience delays in such scenarios.
|
||||
|
||||
The **`interactive`** partition is designed specifically for real-time, interactive work. Here are the key characteristics:
|
||||
|
||||
* **CPU Oversubscription:** This partition allows CPU oversubscription (configured as `FORCE:4`), meaning that up to four interactive
|
||||
* **CPU Oversubscription:** This partition allows CPU oversubscription (configured as `FORCE:4`), meaning that up to four interactive
|
||||
jobs may share the same physical CPU core. This can impact performance, but enables fast access for short-term tasks.
|
||||
* **Highest Scheduling Priority:** Jobs submitted to the interactive partition are always prioritized. They will be scheduled
|
||||
* **Highest Scheduling Priority:** Jobs submitted to the interactive partition are always prioritized. They will be scheduled
|
||||
before any jobs in other partitions.
|
||||
* **Intended Use:** This partition is ideal for debugging, testing, compiling, short interactive runs, and other activities where
|
||||
* **Intended Use:** This partition is ideal for debugging, testing, compiling, short interactive runs, and other activities where
|
||||
immediate access is important.
|
||||
|
||||
!!! warning
|
||||
@@ -223,12 +216,14 @@ For submittng jobs to the GPU cluster, **the cluster name `gmerlin7` must be spe
|
||||
### GPU general configuration
|
||||
|
||||
The **Merlin7 GPU cluster** is configured with the **`CR_CORE_MEMORY`**, **`CR_ONE_TASK_PER_CORE`**, and **`ENFORCE_BINDING_GRES`** options.
|
||||
|
||||
* This configuration treats both cores and memory as consumable resources.
|
||||
* Since the nodes are running with **hyper-threading** enabled, each core thread is counted as a CPU
|
||||
* Since the nodes are running with **hyper-threading** enabled, each core thread is counted as a CPU
|
||||
to fulfill a job's resource requirements.
|
||||
* Slurm will allocate the CPUs to the selected GPU.
|
||||
|
||||
By default, Slurm will allocate one task per core, which means:
|
||||
|
||||
* For hyper-threaded nodes (NVIDIA A100-based nodes), each task will consume 2 **CPUs**, regardless of whether both threads are actively used by the job.
|
||||
* For the NVIDIA GraceHopper-based nodes, each task will consume 1 **CPU**.
|
||||
|
||||
@@ -247,15 +242,16 @@ scripts accordingly.
|
||||
|
||||
Notes on memory configuration:
|
||||
* **Memory allocation options:** To request additional memory, use the following options in your submission script:
|
||||
* **`--mem=<mem_in_MB>`**: Allocates memory per node.
|
||||
* **`--mem-per-cpu=<mem_in_MB>`**: Allocates memory per CPU (equivalent to a core thread).
|
||||
* **`--mem=<mem_in_MB>`**: Allocates memory per node.
|
||||
* **`--mem-per-cpu=<mem_in_MB>`**: Allocates memory per CPU (equivalent to a core thread).
|
||||
|
||||
The total memory requested cannot exceed the **`MaxMemPerNode`** value.
|
||||
* **Impact of disabling Hyper-Threading:** Using the **`--hint=nomultithread`** option disables one thread per core,
|
||||
|
||||
* **Impact of disabling Hyper-Threading:** Using the **`--hint=nomultithread`** option disables one thread per core,
|
||||
effectively halving the number of available CPUs. Consequently, memory allocation will also be halved unless explicitly
|
||||
adjusted.
|
||||
|
||||
For MPI-based jobs, where performance generally improves with single-threaded CPUs, this option is recommended.
|
||||
For MPI-based jobs, where performance generally improves with single-threaded CPUs, this option is recommended.
|
||||
In such cases, you should double the **`--mem-per-cpu`** value to account for the reduced number of threads.
|
||||
|
||||
!!! tip
|
||||
@@ -265,20 +261,22 @@ adjusted.
|
||||
|
||||
In the `gmerlin7` CPU cluster, we enforce certain limits on jobs and users to ensure fair resource usage and prevent
|
||||
overuse by a single user or job. These limits aim to balance resource availability while maintaining overall cluster
|
||||
efficiency. However, applying limits can occasionally impact the cluster’s utilization. For example, user-specific
|
||||
efficiency. However, applying limits can occasionally impact the cluster’s utilization. For example, user-specific
|
||||
limits may result in pending jobs even when many nodes are idle due to low activity.
|
||||
|
||||
On the other hand, these limits also enhance cluster efficiency by preventing scenarios such as a single job monopolizing
|
||||
all available resources, which could block other jobs from running. Without job size limits, for instance, a large job
|
||||
all available resources, which could block other jobs from running. Without job size limits, for instance, a large job
|
||||
might drain the entire cluster to satisfy its resource request, a situation that is generally undesirable.
|
||||
|
||||
Thus, setting appropriate limits is essential to maintain fair resource usage while optimizing cluster efficiency. These
|
||||
limits should allow for a mix of jobs of varying sizes and types, including single-core and parallel jobs, to coexist
|
||||
Thus, setting appropriate limits is essential to maintain fair resource usage while optimizing cluster efficiency. These
|
||||
limits should allow for a mix of jobs of varying sizes and types, including single-core and parallel jobs, to coexist
|
||||
effectively.
|
||||
|
||||
To implement these limits, **we utilize Quality of Service (QoS)**. Different QoS policies are defined and applied
|
||||
**to specific partitions** in line with the established resource allocation policies. The table below outlines the
|
||||
To implement these limits, **we utilize Quality of Service (QoS)**. Different QoS policies are defined and applied
|
||||
**to specific partitions** in line with the established resource allocation policies. The table below outlines the
|
||||
|
||||
various QoS definitions applicable to the merlin7 CPU-based cluster. Here:
|
||||
|
||||
* `MaxTRES` specifies resource limits per job.
|
||||
* `MaxTRESPU` specifies resource limits per user.
|
||||
|
||||
@@ -292,7 +290,7 @@ various QoS definitions applicable to the merlin7 CPU-based cluster. Here:
|
||||
| **gpu_a100_interactive** | cpu=16,gres/gpu=1,mem=60G,node=1 |cpu=16,gres/gpu=1,mem=60G,node=1 | partition |
|
||||
|
||||
Where:
|
||||
* **`normal` QoS:** This QoS has no limits and is typically applied to partitions that do not require user or job
|
||||
* **`normal` QoS:** This QoS has no limits and is typically applied to partitions that do not require user or job
|
||||
restrictions.
|
||||
* **`gpu_general` QoS:** This is the **default QoS** for `gmerlin7` _users_. It limits the total resources available to each
|
||||
user. Additionally, this QoS is applied to the `[a100|gh]-general` partitions, enforcing restrictions at the partition level and
|
||||
|
||||
@@ -1,12 +1,4 @@
|
||||
---
|
||||
title: Slurm Examples
|
||||
#tags:
|
||||
keywords: slurm example, template, examples, templates, running jobs, sbatch, single core based jobs, HT, multithread, no-multithread, mpi, openmp, packed jobs, hands-on, array jobs, gpu
|
||||
last_updated: 24 Mai 2023
|
||||
summary: "This document shows different template examples for running jobs in the Merlin cluster."
|
||||
sidebar: merlin7_sidebar
|
||||
permalink: /merlin7/slurm-examples.html
|
||||
---
|
||||
# Slurm Examples
|
||||
|
||||
## Single core based job examples
|
||||
|
||||
|
||||
@@ -1,12 +1,4 @@
|
||||
---
|
||||
title: Jupyterhub on Merlin7
|
||||
#tags:
|
||||
keywords: jupyterhub, jupyter, jupyterlab, notebook, notebooks
|
||||
last_updated: 24 July 2025
|
||||
summary: "Jupyterhub service description"
|
||||
sidebar: merlin7_sidebar
|
||||
permalink: /merlin7/jupyterhub.html
|
||||
---
|
||||
# Jupyterhub on Merlin7
|
||||
|
||||
Jupyterhub provides [jupyter notebooks](https://jupyter.org/) that are launched on
|
||||
cluster nodes of merlin and can be accessed through a web portal.
|
||||
|
||||
@@ -1,12 +1,4 @@
|
||||
---
|
||||
title: ANSYS RSM (Remote Resolve Manager)
|
||||
#tags:
|
||||
keywords: software, ansys, rsm, slurm, interactive, rsm, windows
|
||||
last_updated: 23 August 2024
|
||||
summary: "This document describes how to use the ANSYS Remote Resolve Manager service in the Merlin7 cluster"
|
||||
sidebar: merlin7_sidebar
|
||||
permalink: /merlin7/ansys-rsm.html
|
||||
---
|
||||
# ANSYS RSM (Remote Resolve Manager)
|
||||
|
||||
## ANSYS Remote Resolve Manager
|
||||
|
||||
@@ -32,18 +24,19 @@ The different steps and settings required to make it work are that following:
|
||||
2. Right-click the **HPC Resources** icon followed by **Add HPC Resource...**
|
||||

|
||||
3. In the **HPC Resource** tab, fill up the corresponding fields as follows:
|
||||

|
||||

|
||||
* **"Name"**: Add here the preffered name for the cluster. For example: `Merlin7 cluster`
|
||||
|
||||
* **"HPC Type"**: Select `SLURM`
|
||||
* **"Submit host"**: `service03.merlin7.psi.ch`
|
||||
* **"Slurm Job submission arguments (optional)"**: Add any required Slurm options for running your jobs.
|
||||
* `--hint=nomultithread` must be present.
|
||||
* `--exclusive` must also be present for now, due to a bug in the `Slingshot` interconnect which does not allow running shared nodes.
|
||||
* **"Slurm Job submission arguments (optional)"**: Add any required Slurm options for running your jobs.
|
||||
* `--hint=nomultithread` must be present.
|
||||
* `--exclusive` must also be present for now, due to a bug in the `Slingshot` interconnect which does not allow running shared nodes.
|
||||
* Check **"Use SSH protocol for inter and intra-node communication (Linux only)"**
|
||||
* Select **"Able to directly submit and monitor HPC jobs"**.
|
||||
* **"Apply"** changes.
|
||||
4. In the **"File Management"** tab, fill up the corresponding fields as follows:
|
||||

|
||||

|
||||
* Select **"RSM internal file transfer mechanism"** and add **`/data/scratch/shared`** as the **"Staging directory path on Cluster"**
|
||||
* Select **"Scratch directory local to the execution node(s)"** and add **`/scratch`** as the **HPC scratch directory**.
|
||||
* **Never check** the option "Keep job files in the staging directory when job is complete" if the previous
|
||||
@@ -51,12 +44,12 @@ option "Scratch directory local to the execution node(s)" was set.
|
||||
* **"Apply"** changes.
|
||||
5. In the **"Queues"** tab, use the left button to auto-discover partitions
|
||||

|
||||
* If no authentication method was configured before, an authentication window will appear. Use your
|
||||
* If no authentication method was configured before, an authentication window will appear. Use your
|
||||
PSI account to authenticate. Notice that the **`PSICH\`** prefix **must not be added**.
|
||||

|
||||
* From the partition list, select the ones you want to typically use.
|
||||
* In general, standard Merlin users must use **`hourly`**, **`daily`** and **`general`** only.
|
||||
* Other partitions are reserved for allowed users only.
|
||||
* In general, standard Merlin users must use **`hourly`**, **`daily`** and **`general`** only.
|
||||
* Other partitions are reserved for allowed users only.
|
||||
* **"Apply"** changes.
|
||||

|
||||
6. *[Optional]* You can perform a test by submitting a test job on each partition by clicking on the **Submit** button
|
||||
@@ -67,7 +60,7 @@ for each selected partition.
|
||||
|
||||
## Using RSM in ANSYS
|
||||
|
||||
Using the RSM service in ANSYS is slightly different depending on the ANSYS software being used.
|
||||
Using the RSM service in ANSYS is slightly different depending on the ANSYS software being used.
|
||||
Please follow the official ANSYS documentation for details about how to use it for that specific software.
|
||||
|
||||
Alternativaly, please refer to some the examples showed in the following chapters (ANSYS specific software).
|
||||
|
||||
@@ -1,12 +1,4 @@
|
||||
---
|
||||
title: ANSYS
|
||||
#tags:
|
||||
keywords: software, ansys, slurm, interactive, rsm, pmodules, overlay, overlays
|
||||
last_updated: 23 August 2024
|
||||
summary: "This document describes how to load and use ANSYS in the Merlin7 cluster"
|
||||
sidebar: merlin7_sidebar
|
||||
permalink: /merlin7/ansys.html
|
||||
---
|
||||
# ANSYS
|
||||
|
||||
This document describes generic information of how to load and run ANSYS software in the Merlin cluster
|
||||
|
||||
@@ -14,15 +6,14 @@ This document describes generic information of how to load and run ANSYS softwar
|
||||
|
||||
The ANSYS software can be loaded through **[PModules](pmodules.md)**.
|
||||
|
||||
The default ANSYS versions are loaded from the central PModules repository.
|
||||
The default ANSYS versions are loaded from the central PModules repository.
|
||||
|
||||
However, we provide local installations on Merlin7 which are needed mainly for some ANSYS packages, like Ansys RSM.
|
||||
Due to this, and also to improve the interactive experience of the user, ANSYS has been also installed in the
|
||||
Merlin high performance storage and we have made it available from Pmodules.
|
||||
Due to this, and also to improve the interactive experience of the user, ANSYS has been also installed in the
|
||||
Merlin high performance storage and we have made it available from Pmodules.
|
||||
|
||||
### Loading Merlin7 ANSYS
|
||||
|
||||
|
||||
```bash
|
||||
module purge
|
||||
module use unstable # Optional
|
||||
@@ -37,9 +28,9 @@ module load ANSYS/2025R2
|
||||
<details>
|
||||
<summary>[Example] Loading ANSYS from the Merlin7 PModules repository</summary>
|
||||
<pre class="terminal code highlight js-syntax-highlight plaintext" lang="plaintext" markdown="false">
|
||||
🔥 [caubet_m@login001:~]# module purge
|
||||
🔥 [caubet_m@login001:~]# module use unstable
|
||||
🔥 [caubet_m@login001:~]# module load cray
|
||||
🔥 [caubet_m@login001:~]# module purge
|
||||
🔥 [caubet_m@login001:~]# module use unstable
|
||||
🔥 [caubet_m@login001:~]# module load cray
|
||||
|
||||
🔥 [caubet_m@login002:~]# module search ANSYS --verbose
|
||||
ANSYS/2022R2:
|
||||
@@ -69,7 +60,6 @@ ANSYS/2025R2:
|
||||
</pre>
|
||||
</details>
|
||||
|
||||
|
||||
!!! tip
|
||||
Please always run **ANSYS/2024R2 or superior**.
|
||||
|
||||
|
||||
@@ -1,11 +1,4 @@
|
||||
---
|
||||
title: CP2k
|
||||
keywords: CP2k software, compile
|
||||
summary: "CP2k is a quantum chemistry and solid state physics software package"
|
||||
sidebar: merlin7_sidebar
|
||||
toc: false
|
||||
permalink: /merlin7/cp2k.html
|
||||
---
|
||||
# CP2k
|
||||
|
||||
## CP2k
|
||||
|
||||
@@ -131,14 +124,13 @@ module purge
|
||||
module use Spack unstable
|
||||
module load gcc/12.3 openmpi/5.0.8-r5lz-A100-gpu dbcsr/2.8.0-3r22-A100-gpu-omp cosma/2.7.0-y2tr-gpu cuda/12.6.0-3y6a dftd4/3.7.0-4k4c-omp elpa/2025.01.002-bovg-A100-gpu-omp fftw/3.3.10-syba-omp hdf5/1.14.6-pcsd libint/2.11.1-3lxv libxc/7.0.0-u556 libxsmm/1.17-2azz netlib-scalapack/2.2.2-rmcf openblas/0.3.30-ynou-omp plumed/2.9.2-47hk py-fypp/3.1-z25p py-numpy/2.3.2-45ay python/3.13.5-qivs sirius/develop-qz4c-A100-gpu-omp spglib/2.5.0-jl5l-omp spla/1.6.1-hrgf-gpu cmake/3.31.8-j47l ninja/1.12.1-afxy
|
||||
|
||||
git clone https://github.com/cp2k/cp2k.git
|
||||
git clone <https://github.com/cp2k/cp2k.git>
|
||||
cd cp2k
|
||||
|
||||
mkdir build && cd build
|
||||
CC=mpicc CXX=mpic++ FC=mpifort cmake -GNinja -DCMAKE_CUDA_HOST_COMPILER=mpicc -DCP2K_USE_LIBXC=ON -DCP2K_USE_LIBINT2=ON -DCP2K_USE_SPGLIB=ON -DCP2K_USE_ELPA=ON -DCP2K_USE_SPLA=ON -DCP2K_USE_SIRIUS=ON -DCP2K_USE_PLUMED=ON -DCP2K_USE_DFTD4=ON -DCP2K_USE_COSMA=ON -DCP2K_USE_ACCEL=CUDA -DCMAKE_CUDA_ARCHITECTURES=80 -DCP2K_USE_FFTW3=ON ..
|
||||
ninja -j 16
|
||||
|
||||
|
||||
```
|
||||
#### GH200
|
||||
[](https://gitea.psi.ch/HPCE/spack-psi)
|
||||
|
||||
@@ -1,12 +1,4 @@
|
||||
---
|
||||
title: Cray Programming Environment
|
||||
#tags:
|
||||
keywords: cray, module
|
||||
last_updated: 24 Mai 2023
|
||||
summary: "This document describes how to use the Cray Programming Environment on Merlin7."
|
||||
sidebar: merlin7_sidebar
|
||||
permalink: /merlin7/cray-module-env.html
|
||||
---
|
||||
# Cray Programming Environment
|
||||
|
||||
## Loading the Cray module
|
||||
|
||||
@@ -24,21 +16,21 @@ The Cray Programming Environment will load all the necessary dependencies. In ex
|
||||
🔥 [caubet_m@login001:~]# module list
|
||||
Currently Loaded Modules:
|
||||
1) craype-x86-rome 2) libfabric/1.15.2.0
|
||||
3) craype-network-ofi
|
||||
3) craype-network-ofi
|
||||
4) xpmem/2.9.6-1.1_20240510205610__g087dc11fc19d 5) PrgEnv-cray/8.5.0
|
||||
6) cce/17.0.0 7) cray-libsci/23.12.5
|
||||
8) cray-mpich/8.1.28 9) craype/2.7.30
|
||||
10) perftools-base/23.12.0 11) cpe/23.12
|
||||
12) cray/23.12
|
||||
12) cray/23.12
|
||||
```
|
||||
|
||||
You will notice an unfamiliar `PrgEnv-cray/8.5.0` that was loaded. This is a meta-module that Cray provides to simplify the switch of compilers and their associated dependencies and libraries,
|
||||
as a whole called Programming Environment. In the Cray Programming Environment, there are 4 key modules.
|
||||
|
||||
* `cray-libsci` is a collection of numerical routines tuned for performance on Cray systems.
|
||||
* `libfabric` is an important low-level library that allows you to take advantage of the high performance Slingshot network.
|
||||
* `libfabric` is an important low-level library that allows you to take advantage of the high performance Slingshot network.
|
||||
* `cray-mpich` is a CUDA-aware MPI implementation, optimized for Cray systems.
|
||||
* `cce` is the compiler from Cray. C/C++ compilers are based on Clang/LLVM while Fortran supports Fortran 2018 standard. More info: https://user.cscs.ch/computing/compilation/cray/
|
||||
* `cce` is the compiler from Cray. C/C++ compilers are based on Clang/LLVM while Fortran supports Fortran 2018 standard. More info: <https://user.cscs.ch/computing/compilation/cray/>
|
||||
|
||||
You can switch between different programming environments. You can check the available module with the `module avail` command, as follows:
|
||||
|
||||
@@ -46,13 +38,13 @@ You can switch between different programming environments. You can check the ava
|
||||
🔥 [caubet_m@login001:~]# module avail PrgEnv
|
||||
--------------------- /opt/cray/pe/lmod/modulefiles/core ---------------------
|
||||
|
||||
PrgEnv-cray/8.5.0 PrgEnv-gnu/8.5.0
|
||||
PrgEnv-nvhpc/8.5.0 PrgEnv-nvidia/8.5.0
|
||||
PrgEnv-cray/8.5.0 PrgEnv-gnu/8.5.0
|
||||
PrgEnv-nvhpc/8.5.0 PrgEnv-nvidia/8.5.0
|
||||
```
|
||||
## Switching compiler suites
|
||||
|
||||
Compiler suites can be exchanged with PrgEnv (Programming Environments) provided by HPE-Cray. The wrappers call the correct compiler with appropriate options to build
|
||||
and link applications with relevant libraries, as required by the loaded modules (only dynamic linking is supported) and therefore should replace direct calls to compiler
|
||||
Compiler suites can be exchanged with PrgEnv (Programming Environments) provided by HPE-Cray. The wrappers call the correct compiler with appropriate options to build
|
||||
and link applications with relevant libraries, as required by the loaded modules (only dynamic linking is supported) and therefore should replace direct calls to compiler
|
||||
drivers in Makefiles and build scripts.
|
||||
|
||||
To swap the the compiler suite from the default Cray to GNU compiler, one can run the following.
|
||||
|
||||
@@ -1,11 +1,4 @@
|
||||
---
|
||||
title: GROMACS
|
||||
keywords: GROMACS software, compile
|
||||
summary: "GROMACS (GROningen Machine for Chemical Simulations) is a versatile and widely-used open source package to perform molecular dynamics"
|
||||
sidebar: merlin7_sidebar
|
||||
toc: false
|
||||
permalink: /merlin7/gromacs.html
|
||||
---
|
||||
# GROMACS
|
||||
|
||||
## GROMACS
|
||||
|
||||
|
||||
@@ -1,11 +1,4 @@
|
||||
---
|
||||
title: IPPL
|
||||
keywords: IPPL software, compile
|
||||
summary: "Independent Parallel Particle Layer (IPPL) is a performance portable C++ library for Particle-Mesh methods"
|
||||
sidebar: merlin7_sidebar
|
||||
toc: false
|
||||
permalink: /merlin7/ippl.html
|
||||
---
|
||||
# IPPL
|
||||
|
||||
## IPPL
|
||||
|
||||
@@ -15,7 +8,7 @@ Independent Parallel Particle Layer (IPPL) is a performance portable C++ library
|
||||
|
||||
GNU GPLv3
|
||||
|
||||
## How to run on Merlin7
|
||||
## How to run on Merlin7
|
||||
### A100 nodes
|
||||
[](https://gitea.psi.ch/HPCE/spack-psi)
|
||||
```bash
|
||||
@@ -38,8 +31,8 @@ salloc --partition=gh-daily --clusters=gmerlin7 --time=08:00:00 --ntasks=4 --nod
|
||||
ssh <allocated_gpu>
|
||||
|
||||
module use Spack unstable
|
||||
module load gcc/13.2.0 openmpi/5.0.3-3lmi-GH200-gpu
|
||||
module load boost/1.82.0-3ns6 fftw/3.3.10 gnutls/3.8.3 googletest/1.14.0 gsl/2.7.1 h5hut/2.0.0rc7 openblas/0.3.26 cmake/3.31.4-u2nm
|
||||
module load gcc/13.2.0 openmpi/5.0.3-3lmi-GH200-gpu
|
||||
module load boost/1.82.0-3ns6 fftw/3.3.10 gnutls/3.8.3 googletest/1.14.0 gsl/2.7.1 h5hut/2.0.0rc7 openblas/0.3.26 cmake/3.31.4-u2nm
|
||||
|
||||
cd <path to IPPL source directory>
|
||||
mkdir build_gh
|
||||
|
||||
@@ -1,11 +1,4 @@
|
||||
---
|
||||
title: LAMMPS
|
||||
keywords: LAMMPS software, compile
|
||||
summary: "LAMMPS is a classical molecular dynamics code that models an ensemble of particles in a liquid, solid, or gaseous state"
|
||||
sidebar: merlin7_sidebar
|
||||
toc: false
|
||||
permalink: /merlin7/lammps.html
|
||||
---
|
||||
# LAMMPS
|
||||
|
||||
## LAMMPS
|
||||
|
||||
|
||||
@@ -1,11 +1,4 @@
|
||||
---
|
||||
title: OPAL-X
|
||||
keywords: OPAL-X software, compile
|
||||
summary: "OPAL (Object Oriented Particle Accelerator Library) is an open source C++ framework for general particle accelerator simulations including 3D space charge, short range wake fields and particle matter interaction."
|
||||
sidebar: merlin7_sidebar
|
||||
toc: false
|
||||
permalink: /merlin7/opal-x.html
|
||||
---
|
||||
# OPAL-X
|
||||
|
||||
## OPAL
|
||||
|
||||
|
||||
@@ -1,12 +1,4 @@
|
||||
---
|
||||
title: OpenMPI Support
|
||||
#tags:
|
||||
last_updated: 15 January 2025
|
||||
keywords: software, openmpi, slurm
|
||||
summary: "This document describes how to use OpenMPI in the Merlin7 cluster"
|
||||
sidebar: merlin7_sidebar
|
||||
permalink: /merlin7/openmpi.html
|
||||
---
|
||||
# OpenMPI Support
|
||||
|
||||
## Introduction
|
||||
|
||||
@@ -70,7 +62,7 @@ specific pmix plugin versions available: pmix_v5,pmix_v4,pmix_v3,pmix_v2
|
||||
```
|
||||
|
||||
Important Notes:
|
||||
* For OpenMPI, always use `pmix` by specifying the appropriate version (`pmix_$version`).
|
||||
* For OpenMPI, always use `pmix` by specifying the appropriate version (`pmix_$version`).
|
||||
When loading an OpenMPI module (via [PModules](pmodules.md) or [Spack](spack.md)), the corresponding PMIx version will be automatically loaded.
|
||||
* Users do not need to manually manage PMIx compatibility.
|
||||
|
||||
|
||||
@@ -1,16 +1,8 @@
|
||||
---
|
||||
title: PSI Modules
|
||||
#tags:
|
||||
keywords: Pmodules, software, stable, unstable, deprecated, overlay, overlays, release stage, module, package, packages, library, libraries
|
||||
last_updated: 07 September 2022
|
||||
#summary: ""
|
||||
sidebar: merlin7_sidebar
|
||||
permalink: /merlin7/pmodules.html
|
||||
---
|
||||
# PSI Modules
|
||||
|
||||
## PSI Environment Modules
|
||||
|
||||
On top of the operating system stack we provide different software using the PSI developed PModule system.
|
||||
On top of the operating system stack we provide different software using the PSI developed PModule system.
|
||||
|
||||
PModules is the official supported way and each package is deployed by a specific expert. Usually, in PModules
|
||||
software which is used by many people will be found.
|
||||
@@ -22,25 +14,25 @@ If you miss any package/versions or a software with a specific missing feature,
|
||||
To ensure proper software lifecycle management, PModules uses three release stages: unstable, stable, and deprecated.
|
||||
|
||||
1. **Unstable Release Stage:**
|
||||
* Contains experimental or under-development software versions.
|
||||
* Not visible to users by default. Use explicitly:
|
||||
* Contains experimental or under-development software versions.
|
||||
* Not visible to users by default. Use explicitly:
|
||||
|
||||
```bash
|
||||
module use unstable
|
||||
```
|
||||
* Software is promoted to **stable** after validation.
|
||||
* Software is promoted to **stable** after validation.
|
||||
2. **Stable Release Stage:**
|
||||
* Default stage, containing fully tested and supported software versions.
|
||||
* Recommended for all production workloads.
|
||||
* Default stage, containing fully tested and supported software versions.
|
||||
* Recommended for all production workloads.
|
||||
|
||||
3. **Deprecated Release Stage:**
|
||||
* Contains software versions that are outdated or discontinued.
|
||||
* These versions are hidden by default but can be explicitly accessed:
|
||||
* Contains software versions that are outdated or discontinued.
|
||||
* These versions are hidden by default but can be explicitly accessed:
|
||||
|
||||
```bash
|
||||
module use deprecated
|
||||
```
|
||||
* Deprecated software can still be loaded directly without additional configuration to ensure user transparency.
|
||||
* Deprecated software can still be loaded directly without additional configuration to ensure user transparency.
|
||||
|
||||
## PModules commands
|
||||
|
||||
@@ -57,7 +49,7 @@ module purge # unload all loaded packages and cleanup the en
|
||||
```
|
||||
|
||||
Please refer to the **external [PSI Modules](https://pmodules.gitpages.psi.ch/chap3.html) document** for
|
||||
detailed information about the `module` command.
|
||||
detailed information about the `module` command.
|
||||
|
||||
### module use/unuse
|
||||
|
||||
@@ -85,7 +77,7 @@ Please run `module avail --help` for further listing options.
|
||||
### module search
|
||||
|
||||
This is used to **search** for **software packages**. By default, if no **Release Stage** or **Software Group** is specified
|
||||
in the options of the `module search` command, it will search from the already invoked *Software Groups* and *Release Stages*.
|
||||
in the options of the `module search` command, it will search from the already invoked *Software Groups* and *Release Stages*.
|
||||
Direct package dependencies will be also showed.
|
||||
|
||||
```bash
|
||||
|
||||
@@ -1,11 +1,4 @@
|
||||
---
|
||||
title: Quantum Espresso
|
||||
keywords: Quantum Espresso software, compile
|
||||
summary: "Quantum Espresso code for electronic-structure calculations and materials modeling at the nanoscale"
|
||||
sidebar: merlin7_sidebar
|
||||
toc: false
|
||||
permalink: /merlin7/quantum-espresso.html
|
||||
---
|
||||
# Quantum Espresso
|
||||
|
||||
## Quantum ESPRESSO
|
||||
|
||||
@@ -135,7 +128,6 @@ module purge
|
||||
module use Spack unstable
|
||||
module load nvhpc/25.3 openmpi/5.0.7-e3bf-GH200-gpu fftw/3.3.10-sfpw-omp hdf5/develop-2.0-ztvo nvpl-blas/0.4.0.1-3zpg nvpl-lapack/0.3.0-ymy5 netlib-scalapack/2.2.2-qrhq cmake/3.31.6-5dl7
|
||||
|
||||
|
||||
cd <path to QE source directory>
|
||||
mkdir build
|
||||
cd build
|
||||
|
||||
@@ -1,11 +1,4 @@
|
||||
---
|
||||
title: Spack
|
||||
keywords: spack, python, software, compile
|
||||
summary: "Spack the HPC package manager documentation"
|
||||
sidebar: merlin7_sidebar
|
||||
toc: false
|
||||
permalink: /merlin7/spack.html
|
||||
---
|
||||
# Spack
|
||||
|
||||
For Merlin7 the *package manager for supercomputing* [Spack](https://spack.io/) is available. It is meant to compliment the existing PModules
|
||||
solution, giving users the opertunity to manage their own software environments.
|
||||
|
||||
@@ -1,12 +1,4 @@
|
||||
---
|
||||
title: Contact
|
||||
#tags:
|
||||
keywords: contact, support, snow, service now, mailing list, mailing, email, mail, merlin-admins@lists.psi.ch, merlin-users@lists.psi.ch, merlin users
|
||||
last_updated: 15. Jan 2025
|
||||
#summary: ""
|
||||
sidebar: merlin7_sidebar
|
||||
permalink: /merlin7/contact.html
|
||||
---
|
||||
# Contact
|
||||
|
||||
## Support
|
||||
|
||||
@@ -16,10 +8,10 @@ Support can be asked through:
|
||||
|
||||
Basic contact information is also displayed on every shell login to the system using the *Message of the Day* mechanism.
|
||||
|
||||
|
||||
### PSI Service Now
|
||||
|
||||
**[PSI Service Now](https://psi.service-now.com/psisp)**: is the official tool for opening incident requests.
|
||||
|
||||
* PSI HelpDesk will redirect the incident to the corresponding department, or
|
||||
* you can always assign it directly by checking the box `I know which service is affected` and providing the service name `Local HPC Resources (e.g. Merlin) [CF]` (just type in `Local` and you should get the valid completions).
|
||||
|
||||
@@ -35,7 +27,7 @@ Basic contact information is also displayed on every shell login to the system u
|
||||
|
||||
Is strongly recommended that users subscribe to the Merlin Users mailing list: **<merlin-users@lists.psi.ch>**
|
||||
|
||||
This mailing list is the official channel used by Merlin administrators to inform users about downtimes,
|
||||
This mailing list is the official channel used by Merlin administrators to inform users about downtimes,
|
||||
interventions or problems. Users can be subscribed in two ways:
|
||||
|
||||
* *(Preferred way)* Self-registration through **[Sympa](https://psilists.ethz.ch/sympa/info/merlin-users)**
|
||||
|
||||
@@ -1,12 +1,3 @@
|
||||
---
|
||||
#tags:
|
||||
keywords: merlin6, merlin7, migration, fpsync, rsync
|
||||
#summary: ""
|
||||
sidebar: merlin7_sidebar
|
||||
last_updated: 28 May 2025
|
||||
permalink: /merlin7/migrating.html
|
||||
---
|
||||
|
||||
# Merlin6 to Merlin7 Migration Guide
|
||||
|
||||
Welcome to the official documentation for migrating your data from **Merlin6** to **Merlin7**. Please follow the instructions carefully to ensure a smooth and secure transition.
|
||||
@@ -15,7 +6,7 @@ Welcome to the official documentation for migrating your data from **Merlin6** t
|
||||
|
||||
### Phase 1: Users without Projects — **Deadline: July 11**
|
||||
|
||||
If you **do not belong to any Merlin project**, i.e for
|
||||
If you **do not belong to any Merlin project**, i.e for
|
||||
|
||||
* Users not in any group project (`/data/projects/general`)
|
||||
* Users not in BIO, MEG, Mu3e
|
||||
@@ -59,8 +50,8 @@ for further information.
|
||||
* The **home directory and user data directory have been merged** into the single new home directory`/data/user/$USER`.
|
||||
* The **experiments directory has been integrated into `/data/project/`**:
|
||||
|
||||
* `/data/project/general` contains general Merlin7 projects.
|
||||
* Other subdirectories are used for large-scale projects such as CLS division, Mu3e, and MeG.
|
||||
* `/data/project/general` contains general Merlin7 projects.
|
||||
* Other subdirectories are used for large-scale projects such as CLS division, Mu3e, and MeG.
|
||||
|
||||
---
|
||||
|
||||
@@ -70,13 +61,15 @@ Before starting the migration, make sure you:
|
||||
|
||||
* are **registered on Merlin7**.
|
||||
|
||||
* If not yet registered, please do so following [these instructions](../01-Quick-Start-Guide/requesting-accounts.md)
|
||||
* If not yet registered, please do so following [these instructions](../01-Quick-Start-Guide/requesting-accounts.md)
|
||||
|
||||
* **have cleaned up your data to reduce migration time and space usage**.
|
||||
|
||||
* **For the user data migration**, ensure your total usage on Merlin6 (`/psi/home`+`/data/user`) is **well below the 1 TB quota** (use the `merlin_quotas` command). Remember:
|
||||
|
||||
* **Merlin7 also has a 1 TB quota on your home directory**, and you might already have data there.
|
||||
* If your usage exceeds this during the transfer, the process might fail.
|
||||
* **Merlin7 also has a 1 TB quota on your home directory**, and you might already have data there.
|
||||
* If your usage exceeds this during the transfer, the process might fail.
|
||||
|
||||
* No activity should be running / performed on Merlin6 when the transfer process is ongoing.
|
||||
|
||||
### Recommended Cleanup Actions
|
||||
@@ -85,13 +78,13 @@ Before starting the migration, make sure you:
|
||||
* Archive large, inactive data sets.
|
||||
* Delete or clean up unused `conda` or `virtualenv` Python environments:
|
||||
|
||||
* These are often large and may not work as-is on Merlin7.
|
||||
* You can export your conda environment description to a file with:
|
||||
* These are often large and may not work as-is on Merlin7.
|
||||
* You can export your conda environment description to a file with:
|
||||
|
||||
```bash
|
||||
conda env export -n myenv > $HOME/myenv.yml
|
||||
```
|
||||
* Then recreate them later on Merlin7 from these files.
|
||||
* Then recreate them later on Merlin7 from these files.
|
||||
|
||||
> 🧹 For the **user data**, you can always remove more old data **after** migration — it will be copied into `~/merlin6data` and `~/merlin6home` on Merlin7.
|
||||
|
||||
@@ -113,10 +106,11 @@ This script will:
|
||||
* Configure and check that your environment is ready for transferring files via Slurm job.
|
||||
* **Create two directories:**
|
||||
|
||||
* `~/merlin6data` → copy of your old /data/user
|
||||
* `~/merlin6home` → copy of your old home
|
||||
* `~/merlin6data` → copy of your old /data/user
|
||||
* `~/merlin6home` → copy of your old home
|
||||
|
||||
> ⚠️ **Important:** If `~/merlin6home` or `~/merlin6data` already exist on Merlin7, the script will exit.
|
||||
|
||||
> ⚠️ **Important:** If `~/merlin6home` or `~/merlin6data` already exist on Merlin7, the script will exit.
|
||||
> **Please remove them or contact support**.
|
||||
|
||||
If there are issues, the script will:
|
||||
@@ -159,9 +153,9 @@ If a problem occurs during the migration process:
|
||||
* 🔍 **Check the job log files** mentioned in the script output. They contain detailed messages that explain what failed and why.
|
||||
* 🛠️ **Fix the root cause** on the source system. Common issues include:
|
||||
|
||||
* Files with incorrect permissions
|
||||
* Ownership mismatches
|
||||
* Disk quota exceeded on Merlin7
|
||||
* Files with incorrect permissions
|
||||
* Ownership mismatches
|
||||
* Disk quota exceeded on Merlin7
|
||||
* 📚 Refer to the [⚠️ Common rsync/fpsync Migration Issues](#common-rsyncfpsync-migration-issues) section below for detailed explanations and solutions.
|
||||
|
||||
> ℹ️ **Important:** If `migrate_merlin6data.batch` fails, the migration process will automatically cancel `migrate_merlin6home.batch` to avoid ending in an inconsistent state.
|
||||
@@ -200,10 +194,10 @@ merlin7_migration.setup
|
||||
*Expected output:*
|
||||
|
||||
```bash
|
||||
✅ login002.merlin7.psi.ch
|
||||
✅ login002.merlin7.psi.ch
|
||||
✅ `$USER` is a member of svc-cluster_merlin7
|
||||
✅ Skipping key generation
|
||||
✅ SSH key already added to agent.
|
||||
✅ Skipping key generation
|
||||
✅ SSH key already added to agent.
|
||||
✅ SSH ID successfully copied to login00[1|2].merlin7.psi.ch.
|
||||
✅ Test successful.
|
||||
✅ /data/software/xfer_logs/caubet_m created.
|
||||
@@ -287,7 +281,7 @@ Further instructions will be sent via email once the owning team is contacted by
|
||||
* **Cause**: Source files are owned by another user (e.g. root or a collaborator).
|
||||
* **Solution**:
|
||||
|
||||
* Change ownership before migration:
|
||||
* Change ownership before migration:
|
||||
|
||||
```bash
|
||||
chown -R $USER /path/to/file
|
||||
|
||||
Reference in New Issue
Block a user