Comparteix:

GPI - Image Processing Group

Accés als Serveis

El primer que has de fer és connectar-te als servidors GPI. Aquí tens la informació bàsica per fer-ho:

  • Servidor / Host: calcula.tsc.upc.edu
  • Port SSH: 2222
  • Credencials (usuari/contrasenya): Fes servir les teves credencials del TSC.

Tens dues maneres principals de connectar-te al nostre servidor: només amb un terminal o amb interfícies gràfiques disponibles.

Terminal (SSH)

Secure Shell (SSH) és un protocol de xarxa que permet l'intercanvi segur de dades entre dos dispositius.

Es va dissenyar per substituir Telnet i altres shells remotes insegures que envien informació, especialment contrasenyes, en text pla, cosa que les fa vulnerables.

El xifrat que utilitza SSH garanteix la confidencialitat i la integritat de les dades en xarxes no segures, com Internet.

Si utilitzes Linux o Mac, normalment ja tens un client SSH preinstal·lat. Només has d'obrir una aplicació de Terminal i escriure el següent comandament, reemplaçant username pel teu nom d'usuari real:

>> ssh -p2222 username@calcula.tsc.upc.edu

Si ets a la UPC o tens una connexió a internet molt bona, pots utilitzar X11-Forwarding per visualitzar aplicacions gràfiques:

>> ssh -X -p2222 username@calcula.tsc.upc.edu

Si el teu ordinador és Windows, l'opció recomanada és instal·lar MobaXterm com a terminal. Un cop instal·lat, obre un terminal local i escriu els comandaments anteriors. Pots trobar un tutorial bàsic per a MobaXterm. Per descarregar o pujar fitxers al servidor, pots utilitzar FileZilla (disponible per a Windows, Linux i macOS). Trobaràs un tutorial bàsic per a FileZilla.

Serveis d'Emmagatzematge

Disposem de diversos serveis d'emmagatzematge en xarxa:

  • /home/usuaris/imatge/$user: (també enllaçat com a /imatge/$user i /mnt/gpid07/imatge/$user)

    • Contingut: Dades home dels usuaris: codi, documents...
    • Còpia de seguretat: Setmanal
    • Quota: 50 GB/usuari

  • /mnt/work/$user: Sota demanda, pregunta al teu responsable.

    • Contingut: Dades d'usuaris i projectes: resultats experimentals, imatges, vídeos...
    • Còpia de seguretat: NO
    • Quota: 100 GB/usuari

  • /mnt/gpid08/datasets:

    • Contingut: Conjunts de dades (Datasets). Hi pots trobar un fitxer Readme.md amb la seva estructura. Només pot ser escrit per professors i responsables de projecte.
    • Còpia de seguretat: NO
    • Quota: Sota demanda

Serveis de Computació

També tenim un servei de computació que et permet executar molts experiments utilitzant tots els nostres servidors de càlcul, tot mantenint els nostres servidors d'accés lliures per a tasques de codificació o altres tasques que no requereixin molta potència de processament.

Environment Modules

El paquet Environment Modules proporciona un mecanisme per a la modificació dinàmica de l'entorn d'un usuari mitjançant modulefiles. Cada modulefile conté la informació necessària per configurar la shell per a una aplicació.

Environment Modules existeix des de principis dels anys 90 i s'utilitza en alguns dels centres de computació més grans per desplegar múltiples versions de diferents eines de programari als usuaris.

Els mòduls es poden carregar i descarregar de manera dinàmica i atòmica, d'una manera neta.

Totes les shells populars són compatibles, incloent bashkshzshshcshtcsh, així com alguns llenguatges de scripting com ara perl i python.

La idea és força similar a Python's VirtualEnv, i d'alguna manera relacionada amb alguns dels objectius de Docker.

Per què vam començar a utilitzar-lo al GPI?

Fa un temps, tots vam intentar compartir el mateix entorn per poder compartir codi entre nosaltres. Vam crear, desenvolupar i utilitzar ImagePlus, i vam configurar el nostre SDK en PATHs per defecte perquè fos utilitzat per tothom. Tot i que la idea segueix sent bona, la quantitat de codi de codi obert que podem utilitzar, la seva ràpida evolució, el versioning i els forks, i la revolució del DeepLearning, ens han obligat a redissenyar el nostre flux de treball.

Volem proporcionar els mitjans per permetre la màxima flexibilitat possible a tots nosaltres per crear els nostres propis SDKs escollint les combinacions adequades de dependències i les seves versions.

Per això volem començar a utilitzar EnvironmentModules, VirtualEnv, Docker i tecnologies similars.

A la pràctica, Environment Modules és la millor manera de gestionar variables d'entorn com:

  • PATH: per a aplicacions.
  • LD_LIBRARY_PATH: per a llibreries compartides.
  • CPATH i LIBRARY_PATH: per a inclusions i llibreries de GCC.
  • PKG_CONFIG_PATH: per a fitxers .pc.
  • CMAKE_MODULE_PATH: per a fitxers .cmake.
  • CMAKE_INCLUDE_PATH i CMAKE_LIBRARY_PATH: per a inclusions i llibreries de CMake (CMake no utilitza els estàndard CPATH i LIBRARY_PATH).
  • PYTHONPATH: per a mòduls de Python.

Configuració

Hem decidit minimitzar dràsticament la quantitat de programari en qualsevol PATH per defecte. Per tant, per utilitzar qualsevol programari haurem de carregar-lo abans:

>> matlab           # won't work!

>> module load matlab
>> matlab           # will work!

Per mantenir part de la idea de "compartir SDK", intentarem instal·lar tots els mòduls en un directori compartit /opt, de manera que podrem utilitzar les mateixes versions o no segons calgui. I també permetrà obtenir suport de Josep Pujal.

A més, hem creat una petita convenció de noms entre els noms dels directoris i les versions etiquetades del programari instal·lat per utilitzar una plantilla de modulefile per defecte i completa per a tots ells.

Ús

Llistar mòduls disponibles:

>> module avail 

----------------------------------------------------------------------------- /opt/etc/modules ------------------------------------------------------------------------------
cmake/3.15.5  cuda/9.0  cuda/10.0  cudnn/6.0  cudnn/7.4  gcc/5  gcc/7          jdk/11.0.2    openpose/1.5.1  pycharm/2019.1.3   slurm/18.08  tmux/2.8       xv/2019.09  
cuda/8.0      cuda/9.1  cudnn/5.1  cudnn/7.0  gcc/4.8    gcc/6  golang/1.12.1  matlab/2018b  protobuf/3.9.2  singularity/3.2.1  slurm/19.05  virtualgl/2.6

-------------------------------------------------------------------------- /opt/etc/modules-custom --------------------------------------------------------------------------
custom/openpose-1.5.1  

Si us plau, tingues en compte que custom no és realment un mòdul, sinó una manera de permetre una configuració addicional on el modulefile estàndard no és suficient (normalment perquè la llibreria no segueix les regles de paths estàndard).

Carregar la versió per defecte d'un mòdul:

>> module load matlab

Carregar una versió específica d'un mòdul:

>> module load matlab/2018b

Llistar els mòduls ja carregats:

>> module list

Descarregar un mòdul:

>> module unload matlab

Descarregar tots els mòduls (purge):

>> module purge