-
Skriptien etäkehitys
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ä.

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
Lisäksi sinun täytyy valita asetustiedosto, johon yhteys tallennetaan.

Katso myös VS Coden dokumentaation osio Remember hosts and advanced settings lisätietoja varten.
Sen jälkeen voit muodostaa yhteyden uuteen kohteeseen.

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
-
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 mukaan 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ää
<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 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)
Yhdistääksesi 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 yhdistetty 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 satunnaisista
merkeistä koostuvalle merkkijonolle.

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ä).