Skip to content

Commit

Permalink
Chap 4 - translation completed
Browse files Browse the repository at this point in the history
  • Loading branch information
plstonge committed Mar 7, 2024
1 parent 40aaece commit f7dd732
Showing 1 changed file with 86 additions and 74 deletions.
160 changes: 86 additions & 74 deletions 4-storage.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@
"metadata": {},
"source": [
"* [Very fast local storage](https://docs.alliancecan.ca/wiki/Using_node-local_storage),\n",
" but limited to the duration of the compute job\n",
" but limited in size and to the duration of the compute job\n",
" * **Low latency** compared to *Lustre* (the network filesystem)\n",
" * Great bandwidth, even for small files\n",
" * **Data deleted at the end** of the compute job\n",
Expand Down Expand Up @@ -114,15 +114,18 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"* Espace de stockage réseau de [grande capacité](https://docs.alliancecan.ca/wiki/Storage_and_file_management/fr#Quotas_et_politiques) pour des **données temporaires**\n",
" * **Pas** sauvegardé\n",
" * [Purge mensuelle](https://docs.alliancecan.ca/wiki/Scratch_purging_policy/fr) pour les données âgées de plus de 60 jours\n",
"* Performance variable selon l'utilisation de l'ensemble des utilisateurs\n",
"* Cas d'utilisation :\n",
" * Utilisation de données **pendant quelques jours** seulement\n",
" * Stocker temporairement des **résultats en grand nombre** de fichiers\n",
" * Stocker des résultats **intermédiaires** qui sont **trop gros**\n",
" pour `/project`"
"* Network storage space of\n",
" [great capacity](https://docs.alliancecan.ca/wiki/Storage_and_file_management#Filesystem_quotas_and_policies)\n",
" for **temporary data**\n",
" * **Not** backed up\n",
" * [Monthly purge](https://docs.alliancecan.ca/wiki/Scratch_purging_policy)\n",
" for the data older than 60 days\n",
"* Variable performance according to the use by all users\n",
"* Use cases:\n",
" * Using a dataset **for only a few days**\n",
" * Storing **results temporarily** if made of hundreds of files\n",
" * Storing **intermediate** results which\n",
" would be **too big** for `/project`"
]
},
{
Expand All @@ -141,48 +144,53 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"* Espace de stockage réseau de [petite à grande capacité](https://docs.alliancecan.ca/wiki/Storage_and_file_management/fr#Quotas_et_politiques) pour des **données de projet**\n",
" * Un espace projet par défaut par groupe de recherche (sauf sur Niagara)\n",
" * Petite augmentation d'espace projet **sur simple demande (jusqu'à 10 To)**\n",
" * Quota plus élevé si [allocation spéciale](https://alliancecan.ca/fr/services/calcul-informatique-de-pointe/acces-aux-ressources/concours-pour-lallocation-de-ressources)\n",
" * Sauvegardé **quotidiennement**\n",
" * Nombre de fichiers relativement limité (500k par défaut)\n",
"* Données de projet :\n",
" * Potentiellement **partagées** - [configuration des ACLs](https://docs.alliancecan.ca/wiki/Sharing_data/fr)\n",
" * Durée de vie en fonction de la durée d'un projet\n",
" * Typiquement plus importantes que les données temporaires\n",
"* Cas d'utilisation :\n",
" * Stockage de jeux de données **réutilisés sur plusieurs mois et/ou par plusieurs personnes**\n",
" * Stockage de **résultats finaux** coûteux à reproduire"
"* Network storage space of\n",
" [small or large capacity](https://docs.alliancecan.ca/wiki/Storage_and_file_management#Filesystem_quotas_and_policies)\n",
" for **project data**\n",
" * A default project space per research group (except on Niagara)\n",
" * The quota can be increased by a few TB **on demand by email**\n",
" * For a much larger project space, the PI needs to submit a\n",
" [RAC request](https://alliancecan.ca/en/services/advanced-research-computing/accessing-resources/resource-allocation-competition)\n",
" * Backed up **daily**\n",
" * The quota on the number of files is limited (500k by default)\n",
"* Project data:\n",
" * Potentially **shared** -\n",
" [configuration of ACLs](https://docs.alliancecan.ca/wiki/Sharing_data)\n",
" * Last as long as the project lasts\n",
" * Typically more important than temporary data\n",
"* Use cases:\n",
" * Storing datasets that are **reused over\n",
" multiple months or shared by many group members**\n",
" * Storing **final results** which would be too expensive to recreate"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### `/nearline` - Long Term Storage\n",
"Interface de stockage sur disque :\n",
"* On peut voir les fichiers avec la commande `ls`\n",
"* Les données les plus anciennes dans\n",
" [`/nearline` sont probablement sur ruban](https://docs.alliancecan.ca/wiki/Using_nearline_storage/fr)\n",
" * Voir les commandes pour [diagnostiquer l'état des fichiers](https://docs.alliancecan.ca/wiki/Using_nearline_storage/fr#Transf.C3.A9rer_des_donn.C3.A9es_.C3.A0_partir_de_.2Fnearline) dans `/nearline`\n",
"Storage interface on disk:\n",
"* We can see the files with the `ls` command\n",
"* The oldest data in\n",
" [`/nearline` is most likely moved to tape](https://docs.alliancecan.ca/wiki/Using_nearline_storage)\n",
" * There are command lines to\n",
" [check the status of your files](https://docs.alliancecan.ca/wiki/Using_nearline_storage#Transferring_data_from_Nearline)\n",
" in `/nearline`\n",
"\n",
"À considérer :\n",
"* D'une part, la migration de données sur ruban réduit l'espace\n",
" utilisé sur les disques - économie d'argent pour le stockage\n",
"* D'autre part, chaque lecture de fichier migré sur ruban créera\n",
" **une requête bloquante** causant un temps de réponse de quelques\n",
" minutes à quelques heures (si le système d'archivage est surchargé\n",
" de requêtes)\n",
" * Voilà pourquoi il est impératif d'y sauvegarder un\n",
" **faible nombre de très grands fichiers**\n",
" * **À éviter** : y copier de nombreux petits fichiers avant de les\n",
" regrouper dans un fichier d'archive\n",
"To considerate:\n",
"* The migration of the data to tape reduces the space used on\n",
" disk, which saves some money when buying the storage system\n",
"* Each read operation of a migrated file to tape will create\n",
" **a blocking request** which causes a response time of a few\n",
" minutes to hours (when the tape system is overloaded of requests)\n",
" * That is why it is necessary to save\n",
" a **small number of large files**\n",
" * **To avoid**: copying numerous small files on\n",
" Nearline before grouping them in archive files\n",
"\n",
"Cas d'utilisation :\n",
" * Regrouper des fichiers provenant de `/project` ou de `/scratch`\n",
" * Stockage de données importantes **qui ne seront pas utilisées\n",
" pendant plusieurs mois**"
"Use cases:\n",
" * Grouping files from `/project` or `/scratch`\n",
" * Storing important data **that will not be used for months**"
]
},
{
Expand Down Expand Up @@ -228,19 +236,22 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Description des différentes étapes :\n",
"* Téléchargement des données dans `/scratch`\n",
" * Pour une utilisation de quelques jours à quelques semaines\n",
" * Nul besoin de les protéger davantage\n",
"* Soumettre une série de tâches de calcul\n",
" * Une tâche par fichier dans `dossier` dans la partition `/scratch`\n",
"* Le script de tâche est dans la partition `/home`\n",
" * Utilisation des variables `$FIC` et `$SLURM_TMPDIR` pour copier le fichier à traiter localement sur le noeud de calcul\n",
" * Se déplacer dans le dossier local\n",
" * Y configurer un environnement Python\n",
" * Exécuter le code Python présent dans `/home`, fournir le nom du fichier à traiter et rediriger toutes les sorties dans un fichier local\n",
" * Rapatrier le fichier de résultats dans un dossier dans `/scratch`\n",
"* Post-traitement - traiter tous les fichiers de résultats afin de ne garder que l'essentiel dans `/project`"
"Description of each step:\n",
"* A dataset is downloaded in `/scratch`\n",
" * To be used between a few days and a few weeks\n",
" * No need to backup the data (it is easily recoverable)\n",
"* Submission of multiple compute jobs\n",
" * One job per file in `data` in the `/scratch` partition\n",
"* The job script is located in the `/home` partition\n",
" * It uses variables `$FIC` and `$SLURM_TMPDIR` to copy\n",
" the data file to process locally on the compute node\n",
" * Move the session to the local directory\n",
" * Configure a Python environment\n",
" * Execute the Python code saved in `/home`, provide the name of\n",
" the file to process and redirect the output to a local file\n",
" * Copy the results file to a directory in `/scratch`\n",
"* Post-process - process all results files and\n",
" keep only the necessary information in `/project`"
]
},
{
Expand Down Expand Up @@ -274,32 +285,33 @@
"metadata": {},
"source": [
"### In Case of Inaccessible Data\n",
"* Une professeure ou un professeur peut demander à ce que les données soient supprimées\n",
"* Par contre, pour obtenir l'accès aux données, il faut avoir le consentement de la personne qui les a isolées (probablement involontairement)\n",
" * En cas d'absence de réponse, c'est la politique de l'université du groupe de recherche qui permettra ou non d'obtenir l'accès aux données\n",
"* A professor can request the deletion of the inaccessible data\n",
"* To get access to the data, we need the consent of the user\n",
" that has blocked the access (most of the time not on purpose)\n",
" * In case of no response, the research group's institution\n",
" policy can allow or not the access to the data\n",
" \n",
"Dans tous les cas, il vaut mieux planifier, et ce,\n",
"dès l'importation de données sur les grappes de calcul."
"In all cases, it is better to plan the data management\n",
"in advance, even when importing data on compute clusters."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Key Points\n",
"* Le système de fichiers *Lustre* est optimisé pour des gros fichiers\n",
" (+10 Mo)\n",
" * Ne pas mettre trop de fichiers et dossiers dans un même répertoire\n",
" (maximum 1000 items)\n",
"* Pour le transfert de données et l'utilisation du *Nearline*,\n",
" il vaut mieux regrouper les données dans un fichier archive\n",
" (comme Zip, DAR, etc.)\n",
"* Dans l'espace projet, il faut planifier qui devrait avoir accès à quoi et quand\n",
"* Pour optimiser les tâches, utiliser `$SLURM_TMPDIR`\n",
"* La commande `diskusage_report` pour un aperçu de l'espace utilisé\n",
"* Pour les données et codes critiques :\n",
" * avoir une copie ailleurs et\n",
" * utiliser un gestionnaire de versions."
"* The *Lustre* file system is optimized for large files (+10 MB)\n",
" * Avoid saving too many files and directories in a directory\n",
" (maximum 1000 items)\n",
"* For data transfers and the use of *Nearline*, it is\n",
" better to group data in archive files (like Zip, DAR, etc.)\n",
"* In the project space, the group must\n",
" plan who should access to what and when\n",
"* To optimize jobs, use the `$SLURM_TMPDIR`\n",
"* The `diskusage_report` command returns an overview of used space\n",
"* For critical data and codes:\n",
" * have a copy elsewhere, and\n",
" * use a version control system"
]
},
{
Expand Down

0 comments on commit f7dd732

Please sign in to comment.