Hyppää sisältöön

Docs CSC now features an automatic Finnish translation. Click here for more information.

Warning!

Puhti and Mahti will be decommissioned after Roihu becomes available. Users should clean up unnecessary files and move any required data by the end of August 2026. See the Roihu data preparation instructions for details.

Puhti scratch is very full: keep only active data there and move or delete everything else. No new Puhti scratch quota will be granted.

Skriptien etäkehitys

Täällä on lohikäärmeitä!

Vaikka skriptien etäkehitys voi olla hyödyllistä, siihen liittyy melko paljon yhteysongelmia ja muita vaikeasti selvitettäviä ongelmia. Jos kohtaat ongelmia skriptien etäkehityksessä, emme valitettavasti voi taata, että pystymme ratkaisemaan niitä puolestasi. Erityisesti varsinaisten laskentojen ajaminen HPC-järjestelmissä etä-VS Coden kautta ei ole tuettua.

Suosittelemme käyttämään HPC-ympäristöissä skriptaukseen tai koodin kehittämiseen supertietokoneidemme selainkäyttöliittymissä saatavilla olevia VSCode-, Jupyter- ja RStudio-sovelluksia.

Voi olla kätevää käyttää IDE:tä, kuten Visual Studio Codea, niiden skriptien muokkaamiseen ja kehittämiseen, joita ajat Puhdissa, Mahdissa tai cPoudan virtuaalikoneessa.

  • Sinun ei tarvitse käyttää komentorivin tekstieditoreja, kuten vi:tä, vimiä tai nanoa.
  • Sinun ei tarvitse siirtää tiedostoja edestakaisin paikallisen tietokoneesi ja Puhdin/Mahdin/cPoudan välillä.

Tämä ohje sisältää joitakin VS Coden asennus- ja käyttöohjeita.

Visual Studio Code Remote SSH -lisäosalla

Visual Studio Code on laajasti käytetty avoimen lähdekoodin koodieditori, jota voi käyttää etänä Remote SSH -laajennuksella. Se soveltuu erinomaisesti Python- ja bash-skripteille, mutta sitä voi käyttää millä tahansa ohjelmointikielellä. VS Codeen on saatavilla monia laajennuksia. Jupyter- muistikirjojen ajamiseen suosittelemme kuitenkin ensisijaisesti käyttämään HPC:n selainkäyttöliittymissämme saatavilla olevaa Jupyter-sovellusta.

Asennus

Voit asentaa VS Coden tietokoneellesi VS Coden verkkosivulta ja Remote SSH -lisäosan ohjelman Extensions-välilehdeltä.

Remote SSH extension in Visual Studio Code

Note

Windows-käyttäjät tarvitsevat lisäksi asennetun SSH-asiakasohjelman, sillä PuTTyä ei tueta.

Jos sinulla on järjestelmänvalvojan oikeudet, voit ottaa OpenSSH:n käyttöön Windows 10:ssä.

Jos sinulla ei ole järjestelmänvalvojan oikeuksia, voit asentaa Git for Windowsin täältä ja määrittää VS Coden käyttämään Gitin mukana tulevaa SSH-asiakasohjelmaa (File -> Preferences -> Settings -> hae "Remote SSH Path" ja lisää polku ssh.exe-tiedostoosi, esimerkiksi C:\Users\<YOUR_USER>\AppData\Local\Programs\Git\usr\bin\ssh.exe). Saatat myös joutua poistamaan käytöstä asetuksen "useLocalServer", jos kohtaat ongelmia, joissa VS Code käyttää CSC-käyttäjätunnuksen sijaan Windows- käyttäjänimeäsi.

Käyttö

Note

Yhdistääksesi CSC:n supertietokoneisiin SSH-asiakasohjelmalla sinun täytyy ottaa SSH-avaimet käyttöön ja lisätä julkinen avaimesi MyCSC-portaaliin. Lue ohjeet täältä.

Kun olet ottanut SSH-avaimet käyttöön, lisännyt julkisen avaimen MyCSC:hen ja asentanut Remote SSH -laajennuksen, siirry VS Codessa Remote Explorer -välilehdelle ja lisää uusi etäkone +-symbolista. Kun VS Code pyytää SSH-komentoa, kirjoita

ssh <csc_username>@puhti.csc.fi

Lisäksi sinun täytyy valita asetustiedosto, johon yhteys tallennetaan.

Adding a SSH Remote connection

Katso myös VS Coden dokumentaation osio Remember hosts and advanced settings lisätietoja varten.

Sen jälkeen voit muodostaa yhteyden uuteen kohteeseen.

Connecting to a host in VSCode

Olet nyt Puhdissa ja voit avata kansion ja muokata tiedostoja etänä. Huomaa, että voit myös siirtää tiedostoja Puhtiin/Mahtiin vetämällä ja pudottamalla ne VS Codeen.

Note

VS Coden uusimmat versiot voivat antaa muistin loppumiseen liittyvän virheen, kun yrität yhdistää CSC:n supertietokoneisiin. Katso tästä UKK:sta väliaikaiset ratkaisut.

CSC:n ohjelmistoympäristöjen määrittäminen VS Code Remote SSH:ssa

moduuli-järjestelmän ja singularity-konttien käytön vuoksi ohjelmistoympäristöjen lataamiseen VS Code Remote SSH -laajennus ei joskus pysty tunnistamaan asennettuja ohjelmistoja oikein, erityisesti Python-ympäristöissä. Tämä tarkoittaa, että esimerkiksi koodin täydennysvihjeet ja monet muut kätevät ominaisuudet eivät toimi. Jotta VS Code voi ottaa nämä käyttöön, tarvitaan lisämäärityksiä.

Tämä edellyttää yleensä SSH:n etäkomennon suorittamista yhteyden muodostamisen yhteydessä, ja tarkka toteutus riippuu käyttötapauksestasi. Alla on lueteltu tarkemmat komennot muutamille esimerkeille. Kaikissa tapauksissa sinun täytyy kuitenkin

  1. Ottaa etäkomennot käyttöön Visual Studio Code Remote-SSH -laajennuksessa:
    Avaa asetusnäkymä (Ctrl ,) ja kirjoita hakukenttään "enable remote command". Asetuksen Enable Remote Command pitäisi näkyä ensimmäisenä hakutuloksena. Varmista, että se on käytössä (näyttää valintamerkin). Enabling Remote Command in Remote SSH extension

  2. Määrittää yhteys etäkomennolla SSH-asetustiedostossasi:
    Avaa SSH-asetustiedosto (Ctrl Shift p tai F1) ja kirjoita ssh configuration, jolloin Remote-SSH: Open SSH Configuration File pitäisi näkyä ensimmäisenä tuloksena. Napsauta sitä.

  3. Lisää nyt avattuun tiedostoon uusi lohko seuraavan mallin mukaan ja tallenna tiedosto:

    Host puhti-software-environment
         HostName puhti.csc.fi
         User <csc_username>
         RemoteCommand <remote_command>
    

Muuta HostName vastaamaan järjestelmää, johon haluat yhdistää. Voit valita vapaasti tunnisteen Host-sanan jälkeen (puhti-software-environment), ja tällä nimellä se näkyy VS Code Remote SSH -laajennuksen etäisäntävalinnassa, kun muodostat yhteyden. Suosittelemme antamaan jokaiselle käyttämällesi järjestelmän ja ohjelmistoympäristön yhdistelmälle tunnistettavan nimen (esimerkiksi puhti-pytorch). Jos olet tallentanut SSH-avaimesi muuhun kuin oletussijaintiin, lisää yllä näkyvään isäntälohkoon myös IdentityFile <path_to_your_keyfile>.

CSC-moduulien lataaminen

Voit ladata moduulin VS Coden etäyhteyteen seuraavalla remote_command- komennolla:

bash -c "source /appl/profile/zz-csc-env.sh; module load <your_module>; singularity_wrapper shell"

LUMIssa sinun täytyy sen sijaan käyttää

module use /appl/local/csc/modulefiles/; module load <your_module>; singularity_wrapper shell

<your_module> on moduuli (tai moduulit), jonka haluat ladata, esimerkiksi pytorch.

Note

Yllä olevan remote_command-komennon osa singularity_wrapper shell olettaa, että moduuli on rakennettu singularity-kontilla, mikä pitää paikkansa useimmissa tapauksissa. Jos tämä ei kuitenkaan toimi, kokeile korvata se komennolla bash.

CSC-moduulien lataaminen lisäpaketeilla (Python)

Jos ympäristösi perustuu CSC-moduuliin, mutta olet asentanut sen päälle joitakin lisäpaketteja joko venv:llä tai komennolla pip install --user (katso myös Pythonin käyttöopas) sinun täytyy käyttää seuraavaa remote_command-komentoa (Puhdissa/Mahdissa):

  • pip-asennus mukautettuun PYTHONUSERBASE-hakemistoon:
    Lisää export PYTHONUSERBASE=<your_pip_user_base_dir>; ennen komentoa singularity_wrapper shell, eli Puhdissa/Mahdissa remote_command muuttuu muotoon:

    bash -c "source /appl/profile/zz-csc-env.sh; module load <your_module>; export PYTHONUSERBASE=<your_pip_user_base_dir>;  singularity_wrapper shell"
    

  • venv:
    Lisää export APPTAINERENV_PREPEND_PATH='<your_venv_dir>/bin/' ennen komentoa singularity_wrapper shell – saatat myös joutua valitsemaan VS Coden käyttämän Python-tulkin venvin tarjoamaksi tulkiksi.

Note

Valitettavasti venv-tuki on tällä hetkellä rajoitettu ympäristöihin, jotka on perustettu singularity-kontin sisältä. Luo venv seuraavasti järjestelmän terminaalissa:

  1. Lataa vastaava (perus)moduuli: module load <your_module>
  2. Siirry konttiympäristöön: singularity_wrapper shell
  3. Luo virtuaaliympäristö: python -m venv --system-site-packages <path_where_to_create_the_venv_directory>

Vaihe 2 on ratkaisevan tärkeä – jos luot venv-ympäristön kontin ulkopuolelta, se ei toimi kontin sisällä eikä siten myöskään yllä kuvatun VS Coden etäasetelman kanssa.

Tykky-konttien lataaminen (Python)

Yhdistääksesi mukautettuun Python-ympäristökonttiin, joka on luotu Tykky-konttikääreellä, käytä seuraavaa remote_command-komentoa:

<tykky_installation_dir>/bin/_debug_shell

missä <tykky_installation_dir> on polku, johon Tykky-ympäristö on asennettu.

Kun olet yhdistetty etäympäristöön VS Codessa, integroidun terminaalin komentokehotteen pitäisi näkyä muodossa

Apptainer>

mikä osoittaa, että käytössäsi on komentotulkki Tykky-kontin sisällä.

Lopuksi sinun täytyy valita VS Coden käyttämä Python-tulkki muodossa /<SYSTEM>_TYKKY_*/miniconda/envs/env1/bin/python, missä <SYSTEM> on paikkamerkki arvoille PUHTI, MAHTI, LUMI ja * jollekin satunnaisista merkeistä koostuvalle merkkijonolle.

Selecting the Python interpreter in VS Code for tykky container environments

Note

Et voi muokata kontin sisältöä tämän VS Coden etäyhteyden kautta, mukaan lukien uusien pakettien asentaminen pipillä tai condalla. Muokkaa konttia Tykyn ohjeiden mukaisesti määritetyn VS Coden etäyhteyden ulkopuolella.

Koodin ajaminen

Älä aja laskentaa HPC:llä VS Coden Terminal-välilehdeltä tai VS Coden debuggereilla. Tällöin koodi ajettaisiin oletusarvoisesti kirjautumissolmulla, jota ei ole tarkoitettu vaativaan laskentaan. Asetelma on myös yleisesti ottaen hauras.

VSCode Remote Tunnels

VSCode tarjoaa myös Remote Tunnel -ominaisuuden vaihtoehdoksi SSH:lle. VSCode dev tunnels -ominaisuus on tarkoituksella poistettu käytöstä Puhdissa ja Mahdissa tietoturvahuolten vuoksi, sillä se antaisi kolmannelle osapuolelle mahdollisuuden hallita pääsyä CSC:n supertietokoneisiin. Suosittelemme käyttämään sen sijaan Remote SSH -ominaisuutta (kuvattu yllä).

Suomenkielinen tekoälykäännös

Sisällössä voi esiintyä virheellistä tietoa tekoälykäännöksestä johtuen.

Klikkaa tästä antaaksesi palautetta