Skriptien etäkehittäminen
Page undergoing cleanup after Puhti and Mahti retirement
This page contains outdated references to Puhti and/or Mahti, which have now been decommissioned. The page is undergoing changes to reflect CSC's new supercomputer Roihu.
Täällä on lohikäärmeitä!
Vaikka skriptien etäkehittäminen voi olla hyödyllistä, siihen liittyy varsin paljon yhteysongelmia ja muita vaikeasti selvitettäviä ongelmia. Jos kohtaat ongelmia skriptien etäkehityksen aikana, 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 VSCode-, Jupyter- ja RStudio -sovelluksia, jotka ovat saatavilla supertietokoneidemme selainkäyttöliittymissä skriptaukseen tai koodin kehittämiseen HPC-ympäristöissä.
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.
- Ei tarvitse käyttää komentorivin tekstieditoreja, kuten vi:tä, vimiä tai nanoa.
- 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 -liitännäisellä
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ää minkä tahansa ohjelmointikielen kanssa. VS Codeen on saatavilla paljon laajennuksia. Jupyter-muistikirjojen ajamiseen suosittelemme kuitenkin ensisijaisesti Jupyter-sovellusta, joka on saatavilla HPC:n selainkäyttöliittymissämme.
Asennus
Voit asentaa VS Coden tietokoneellesi VS Coden verkkosivulta ja Remote SSH -liitännäisen ohjelman Extensions-välilehdeltä.

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
omaan 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ää Windows-käyttäjänimeäsi CSC-käyttäjänimen
sijaan.
Käyttö
Note
Jotta voit muodostaa yhteyden 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
Lisäksi sinun täytyy valita asetustiedosto, johon yhteys tallennetaan.

Katso myös Remember hosts and advanced settings -osio VS Coden dokumentaatiosta lisätietoja varten.
Tämän jälkeen voit muodostaa yhteyden uuteen isäntään.

Olet nyt Puhdissa ja voit avata kansion sekä 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 muodostaa yhteyden 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 vaihtelee käyttötapauksesi mukaan – muutamien esimerkkien tarkat komennot on lueteltu alla. Kaikissa tapauksissa sinun tulee kuitenkin
-
Ottaa etäkomennot käyttöön Visual Studio Code Remote-SSH -laajennuksessa:
Avaa asetusnäkymä (Ctrl ,) ja kirjoita hakukenttään "enable remote command". AsetuksenEnable Remote Commandpitäisi näkyä ensimmäisenä hakutuloksena. Varmista, että se on käytössä (näyttää valintamerkin).
-
Määrittää yhteys etäkomennolla SSH-asetustiedostossasi:
Avaa SSH-asetustiedosto (Ctrl Shift ptaiF1) ja kirjoitassh configuration, jolloinRemote-SSH: Open SSH Configuration Filepitäisi näkyä ensimmäisenä tuloksena. Napsauta sitä. -
Lisää nyt avattuun tiedostoon uusi lohko seuraavan mallin mukaisesti ja tallenna tiedosto:
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:
LUMIssa sinun täytyy sen sijaan käyttää komentoa
<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äpakettien kanssa (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 mukautettuunPYTHONUSERBASE-hakemistoon:
Lisääexport PYTHONUSERBASE=<your_pip_user_base_dir>;ennen komentoasingularity_wrapper shell, eli Puhdissa/Mahdissaremote_commandmuuttuu muotoon: -
venv:
Lisääexport APPTAINERENV_PREPEND_PATH='<your_venv_dir>/bin/'ennen komentoasingularity_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:
- Lataa vastaava (perus)moduuli:
module load <your_module> - Siirry konttiympäristöön:
singularity_wrapper shell - 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)
Jos haluat yhdistää mukautettuun Python-ympäristökonttiin, joka on luotu
Tykky-konttikääreellä, käytä seuraavaa
remote_command-komentoa:
missä <tykky_installation_dir> on polku, johon Tykky-ympäristö on asennettu.
Kun olet muodostanut yhteyden etäympäristöön VS Codessa, integroidun terminaalin komentokehotteen pitäisi näkyä muodossa
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 satunnaisia
merkkejä sisältävälle merkkijonolle.

Note
Et voi muokata kontin sisältöä tämän VS Coden etäyhteyden kautta, mukaan
lukien uusien pakettien asentaminen pip:llä tai conda:lla. Muokkaa
konttia käyttämällä
Tykyn ohjeita
määritetyn VS Coden etäyhteyden ulkopuolella.
Koodin ajaminen
Älä aja laskentaa HPC:llä VS Coden Terminal-välilehdeltä tai käyttämällä VS Coden virheenjäljittimiä. 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 vaihtoehtona SSH:lle. VSCode dev tunnels -ominaisuus on tarkoituksella poistettu käytöstä Puhdissa ja Mahdissa tietoturvasyistä, koska se antaisi kolmannelle osapuolelle mahdollisuuden hallita pääsyä CSC:n supertietokoneisiin. Suosittelemme käyttämään sen sijaan Remote SSH -ominaisuutta (dokumentoitu yllä).