NSCinfo nr 75 1993-04-28
boein@nsc.liu.se


NSCinfo nr 75 (1993-04-28)

1. Besök från NSC.

Onsdagen den 5 maj kl 10.30 besöker representanter från NSC Stockholm, närmare bestämt KTH, rum D9, Lindstedtsvägen 15, 3 tr. Från NSC deltager Mats S Andersson samt Göran Magnusson från SAAB.

Informationsutbyte om allmänna frågor om Cray samt speciellt kommunikationsfrågor.

Motsvarande besök planeras även för Göteborg och Uppsala, men dag är ännu ej bestämd.

2. Debiteringsenheter.

Vid ansökan om tid på Cray söker Ni ett visst antal CPU-timmar men tilldelas i stället ett visst antal debiteringsenheter. För en normal användare går det 100 debiteringsenheter på en CPU-timme, men för vissa användare kan en CPU-timme motsvara flera hundra debiteringsenheter.

Varför det?

Vid debiteringen tar vi inte bara hänsyn till den rena CPU- tiden, utan även till utnyttjat primärminne och dataöverföring mellan primärminne och sekundärminne. Debiteringen beräknas enligt följande formel:

SBU = 0.028 * (utime + stime) + 0.00112 * cpumem + 0.01792 * transfer

där

SBU
= debiteringsenheter (Billing Units)
utime
= använd CPU-tid i sekunder för aktuellt jobb (User CPU Time)
stime
= system CPU-tid i sekunder för aktuellt jobb (System CPU Time)
cpumem
= minnesintegral i enheten M ord * sekunder (CPU Time Memory Integral)
transfer
= antal överförda M ord (Data Transferred)
Faktorn 0,028 är 100/3600, dvs omräkning från en ren CPU-timme till 100 debiteringsenheter. De engelska uttrycken ovan, med aktuella värden, redovisas i "Job Accounting - Summary Report" som erhålles med kommandot ja -s.

Uppföljningsprogrammet project ger förutom redovisning av debiteringsenheter och CPU-sekunder även användarens kvot mellan debiteringsenheter och CPU-timmar. Denna kvot varierar normalt mellan 101 och 200.

3. Skivminnesdebitering.

Observera den skivminnesdebitering på Cray som sker för lagring på /stor/nsc. Automatisk rensning sker när någon fil ej anropats på 15 dagar. Filer kan därför komma att ligga kvar länge, till kostnaden 50 öre per Mbyte och dag.

PS. Avläsning sker varje natt, cirka kl 23-24.

4. Omlänkning.

De nya biblioteksrutinerna i UNICOS 7 har en större förmåga till parallellisering (multitasking) än tidigare, varför omlänkning av gamla program rekommenderas.

5. Paket för linjär algebra, LAPACK.

Med de gamla välkända paketen EISPACK och LINPACK som grund har ett nytt paket LAPACK utvecklats, vilket på ett effektivare sätt kan utnyttja moderna datorarkitekturer som vektorprocessorer och multipelprocessorer. Det finns beskrivet i

E.  Anderson m fl, LAPACK User's Guide, Society for
Industrial and Applied Mathematics, Philadelphia, 1992.
ISBN 0-89871-294-7.
Dessutom finns Release_Notes i filen lapack som kan erhållas med NSCdoc eller anonym ftp från arean bibliotek. Den innehåller bland annat tryckfel i ovanstående. Dessutom kommer vi att lägga ut manualfiler för LAPACK och alla ingående rutiner.

En stor del av LAPACK, liksom de grundläggande rutinerna BLAS, finns automatiskt tillgängliga under UNICOS, man behöver vid Fortran inte speciellt ange något sökbibliotek, utan de finns i /lib/libsci.a, vilket bibliotek länkas in automatiskt. I dagsläget är det rutiner för linjära ekvationssystem från LAPACK som finns i Cray-biblioteket, medan egenvärdesdelen kommer senare. Dokumentation finns i

Volume 3:  UNICOS Math and Scientific Library Reference Manual,
SR-2081 6.0, Cray Research, January 1991.

Bo Einarsson har lagt upp hela LAPACK med BLAS, och då i tre versioner, nämligen vanlig enkel precision (REAL), i dubbel precision (DOUBLE PRECISION) och i komplex version (COMPLEX). Notera att dubbel precision på Cray är mycket långsam eftersom denna ej finns i hårdvaran, tester visar en faktor 100 längre exekveringstider än i enkel precision.

De grundläggande biblioteken är

/usr/local/lib/liblapack.a
/usr/local/lib/libblas.a

och länkas in i Ditt program på vanligt sätt med -llapack respektive -lblas

Man skall alltså ge till exempel kommandot

cf77 -Zp test.f -lblas -llapack

Ovanstående BLAS-bibliotek är ej fullständigt, de rutiner som finns i /lib/libsci.a finns ej här (rutinerna SNRM2 och SCNRM2 finns med i båda, dubbel-precisionsvarianterna finns ej i /lib/libsci.a).

LAPACK (liksom BLAS) finns även i komplex dubbel precision, vilket är svårt att ordna på Cray. Kontakta Bo om Du behöver detta.

LAPACK har nu revision 1.1 av den 31 mars 1993.

6. Fortran 90 egenskaper i Cray CF77

Många av de nya kommandona i Fortran 90 finns redan hos Cray, eftersom Cray Research tagit en aktiv del i utvecklandet av den nya standarden. Detta gäller i första hand behandlingen av fält, eftersom detta ligger nära Cray:s intressen för vektorisering och parallellisering. Se gärna artiklar i CRAY CHANNELS, Fall 1992, (Vol 14, No 4), sid 18-21. Cray anger tidpunkten för full Fortran 90 till slutet av 1993, och CF90 blir då tillgängligt på Cray X-MP EA och senare maskiner. Följande nyheter finns redan nu i CF77 version 5.0:

Grundläggande:
Tecknen dubbelblipp ", utropstecken ! och understrykningstecken _ finns. Tecknet kanelbulle @ ingår också men är reserverat för systemet. Radlängden som kompilatorn ser kan ställas om från 72 till 80. Kommentarer kan inledas med ! var som helst på raden (utom i kolumn 6). En sats kan innehålla upp till 99 fortsättningsrader. Ett variabelnamn får ha högst 31 tecken, inklusive eventuellt understrykningstecken _. Textsträngar kan avskiljas med ' eller ". Oktala och hexadecimala konstanter finns, liksom bit-operationer enligt MIL-STD 1753. Dessutom finns repeteringsfaktor för ny rad (dvs för / i FORMAT). Dock finns det endast fix form!

Styrsatser:
DO, DO WHILE och END DO finns, men ej EXIT och CYCLE.

Deklarationer:
IMPLICIT NONE och INCLUDE finns. Dessutom finns NAMELIST men den kan ha en annan alternativ syntax än i Fortran 90, både i programmet och i data. Den nya typen av deklarationer med dubbelkolon :: finns ej.

Filhantering:
Alla de nya specifikationerna till OPEN och INQUIRE finns med i CF77.

Funktioner:
Ett fåtal av de nya inbyggda funktionerna, däribland bitmanipuleringsfunktionerna och bitkopierings- rutinen, samt en del föregångare till andra nya funktioner i Fortran 90. Dessutom finns de tre bitoperationsfunktionerna från HPF.

Fält:
Justerbara fält, fält med antagen dimension, automatiska fält, fältsektioner och fältuttryck. Det är de båda senare som är verkligt användbara! Kommandot ALLOCATABLE är ännu ej tillgängligt.

Övrigt:
Rekursion finns under vissa villkor på kompileringen, inget RESULT(uttryck) erfordras. Pekare finns, men ej definierade på samma sätt som i Fortran 90. Försiktighet anbefalles för båda dessa begrepp! Pekare i Fortran 90 och Cray Fortran diskuteras i artikeln Fortran 90 Pointers vs. "Cray" Pointers av Jeanne Martin i Fortran Forum, Vol 11, nummer 2, sid 17 - 23, juni 1992.

I CF77 version 6.0 tillkommer WHERE-satsen samt följande inbyggda fältfunktioner: MERGE, PACK, SPREAD, UNPACK, RESHAPE, SUM, PRODUCT, MAXVAL, MINVAL, COUNT, ANY, ALL, TRANSPOSE, EOSHIFT, CSHIFT, MAXLOC, MINLOC, MATMUL och DOT_PRODUCT.