Beräkningssessioner
För grundkurser räcker det oftast att använda beräkningar och algoritmer som kan köras i interaktiva sessioner. Anställda och studenter på avancerade kurser kan behöva köra beräkningsjobb som tar många timmar eller dagar. Dessa beräkningsjobb bör köras i beräkningssessioner som är oberoende av inloggningssessionen.
Studenter
Studenter kan logga in i allmänna datorsalar och på shell-servrar. Men ingetdera bör användas för tyngre, långvariga beräkningar.
- Datorsalsmaskiner kan endast användas lokalt, ej med fjärrinloggning.
- Datorsalsmaskiner ska inte lämnas obevakade (med låst skärm) mer än 15 minuter.
- Shell-servrar har resursbegränsningar, och dina jobb ska inte påverka andra användares.
Men det finns beräkningsservrar som studenter kan få tillgång till. Be din kursledare (eller handledare) att kontakta oss för att ge dig tillgång till dem.
Anställda (lärare och övrig personal)
Många anställda har personliga arbetsstationer, och fjärrinloggning (ssh) kan oftast användas för att logga in på dem. Många avdelningar har dessutom beräkningsservrar eller resursmaskiner, som man kan få tillgång till.
Istället för att lämna applikationer kopplade till en grafisk inloggning (med låst skärm), kan du skapa en separat session som du kan koppla loss dig från, och sedan återansluta. Då kan du även ge program möjlighet att läsa och skriva till din AFS-hemkatalog. (Programmen måste ha AFS-tokens, som kan expirera i en grafisk session, eller raderas då fjärrinloggningen avslutas.)
Det kan även finnas en /NOBACKUP-area du kan använda, mer detaljer nedan.
Beräkningar i screen-session
Du behöver kombinera flera olika verktyg (program):
- Använd kpagsh för att skapa en sandlåda för rättigheter (Process Authentication Group, PAG) för Kerberos-biljetter och AFS-tokens.
- Använd kinit för att få biljetter i sandlådan, och automatiskt förnya dem.
- Använd screen för att få en session du kan koppla loss dig från.
Allt görs i ett enda kommando:
kpagsh kinit -l 1d -r 1w username@KTH.SE screen -D -m
OBS: screen startar i non-detached mode (lägger sig inte i bakgrunden, så kinit kan be om lösenord). Då du gett lösenord till kinit måste du använda Ctrl-z bg för att koppla loss från screen. Du kan sedan återansluta med screen -r.
kinit kommer automatiskt förnya biljetter när livslängden passeras. För att kontrollera hur länge de räcker, öppna ett nytt fönster inuti screen-sessionen, och kör klist -Tf. Kör du det igen någon dag senare ser du att din ticket-granting-ticket, krbtgt/KTH.SE@KTH.SE har förnyats. För detaljer, se man-bladet för kinit (extern länk) .
Du kan sedan starta din beräkning i screen-sessionen. Mer information om GNU Screen finns på Wikipedia (extern länk) .
Andra alternativ
Lagra tillfälliga filer i /NOBACKUP
På personliga arbetsstationer och vissa beräkningsmaskiner, kan du spara filer i /NOBACKUP/användarnamn, en katalog på lokal disk. Att arbeta mot lokal disk är mycket snabbare än nätverkslagring, och inga AFS-biljetter behövs.
Men som namnet säger görs ingen backup av dessa filer. Spara därför endast filer som kan återskapas från git, molnlagring, etc., eller för att tillfälligt lagra arbetsfiler som sedan kopieras till mer säker lagring.
På delade system: Tillgängligt diskutrymme delas mellan alla användare, så rensa bort filer du inte längre behöver från din /NOBACKUP-katalog.
Starta en applikation icke-grafiskt i screen-session
Det går att starta program som MatlabⓇ i icke-grafiskt läge:
nohup
Om din beräkning inte behöver en terminal kan du köra den i bakgrunden direkt, utan screen. Du kan behöva använda nohup så processen inte dödas då du loggar ut. Kontrollera att processen avslutas! Gör den inte det måste du slå ihjäl den manuellt (använd t.ex. dess PID). Annars kan den blockera uppdateringar (omstarter) av din arbetsstation, eller en server andra på din avdelning använder.
Kösystem för beräkningsjobb
De flesta shell-servrar har inget kösystem för schedulering av batch-jobb, eftersom man inte kommit överens om vilket man ska använda.
Application checkpointing
Använder du application checkpointing då du skriver ditt program, så kan beräkningarna avbrytas och återupptas utan att du förlorar resultat.