PC-kluster, ett alternativ?

Kan ett kluster av PC-datorer ersätta en superdator som beräkningsresurs? Det var en fråga vi ställde oss i början av sommaren 1999. För att få svar startade vi ett projekt för att bygga ett PC-kluster, en Beowulf. Planen var att bygga en maskin av begränsad storlek och låta några NSC-användare få testa och utvärdera. Om utvärderingen visade på goda prestanda skulle vi bygga ut maskinen och slutligen integrera den i NSCs samling av högpresterande datorer.

Hur designar man då en snabb Beowulf? Finns det ett vinnande koncept att kopiera? Det är tyvärr inte så enkelt. Först och främst finns det en rad design-frågor om hur stor och snabb maskinen ska vara. Ska den vara så snabb som möjligt eller är pris/prestanda viktigt? Dessutom rör sig den teknologiska utvecklingen och pris/prestanda-kurvan så fort att utvärdering av systemen måste göras om nästan varje dag.

Tabell 1: Resultat från NAS 2.3.
CLASS WCLASS A
1 proc4 proc/
4 noder
8 proc/
8 noder
16 proc/
8 noder
FT44.39106.94203.82299.95
MG51.14149.47312.82401.32
IS5.757.0211.6610.40
EP1.255.009.9319.65
CG33.8288.31146.36117.07
LU81.74283.77529.91997.75
SP46.13148.12263.461)345.72
BT66.41245.69463.661)548.00
1) 9 processorer / 9 noder

Vi fastnade slutligen för ett kluster bestående av tio datorer varje innehållande två Pentium III-processorer (450 MHz) och 512 Mbyte minne. Nio av de tio fick en IDE-disk, två FastEthernet-interface och ett billigt grafikkort. Den tionde fick instället fyra SCSI-diskar, tre nätverksinterface och ett mer avancerat grafikkort. Alla maskinerna kopplades samman med en switch och en av datorerna fick även kontakt med omvärlden. Som operativsystem installerade vi Linux. GCC användes för att kompilera C- och C++-program och en Fortran 90-kompilator köptes från Portland Group. För att kunna exekvera parallella program installerades fria versioner av PVM och MPI.

Hur bra blev nu maskinen? Vi använde NAS 2.3 för att mäta prestandan (se Tabell 1). LU, SP och BT är de program i NAS-sviten som mest liknar "normala" applikationer. Vid en direkt jämförelse har en processor i Beowulfen cirka 25 procent bättre upmätt prestanda än en processor i NSCs T3E (300MHz alpha-chip). Skalar vi upp problemet till åtta processorer, jämnar skillnaden ut sig och vid fler processorer visar T3E:ns snabba nätverk sin styrka.

Tabell 2: Resultat från STREAMS.
FunktionBandbredd (MB/s)
Copy 306.89
Scale 304.18
Add 366.31
Triad 265.34

Förutom nätverksprestanda är minnesbandbredd en viktig faktor hos datorer för vetenskapliga beräkningar. STREAMS är ett benchmark som mäter bandbredd till minnet genom att utföra enkla operationer på stora vektorer. Redan när man använder bara en processor per nod/dator (se tabell 2), kan processorn nästan utnyttja hela den minnesbandbredden som är tillgänglig i en nod (400 MB/s). Används båda två processorerna kan bandbredden lätt bli en begränsande faktor och vi måste istället förlita oss på att applikationer har bra cache-beteende.

FAKTARUTA
PC-klustret på NSC heter Banan. Den består av tio stycken PC-datorer. Nio av de tio har vardera
  • ett Tyan 1832 DL moderkort,
  • två Pentium III (450 MHz) processorer,
  • 512 MByte primärminne,
  • en 9 GByte IDE-disk,
  • två D-link FastEthernet-interface (med tulip 21143),
  • ett S3 Trio3D grafikkort och
  • en floppy-drive.

    Den tionde har liknande konfiguration frånsett att IDE-disken har fått ge plats åt fyra stycken SCSI-diskar på samanlagt 54 GByte. Den har också fått ett Asus AGP-V3800 (TNT2) grafikkort. En CDROM-spelare för programinstallation finns också på plats.

    Datorerna är sammankopplade med en ProCurve 2424M FastEthernet-switch från HP. Operativsystemet är RedHat 6.0 med Linux-kärnan uppgraderad till 2.2.14.

    För mer information se http://www.nsc.liu.se/banan/

  • Är då PC-kluster ett alternativ till superdatorer? Ja, för vissa applikationer. Det har ett betydligt lägre pris per Mflop än superdatorer och så länge programmen inte är för kommunikationsintensiva är ett PC-kluster en mycket bra och billigt alternativ för små och medelstora beräkningar. Fortfarande är nätverk en starkt begränsande faktor hos PC-kluster men det finns flera företag som fått upp ögonen för problemet och vi kommer se många alternativa lösningar i framtiden.

    Nu har SKF köpt nittio procent av tillgänglig tid på PC-klustret. De använder den till att köra BEAST, ett program SKF utvecklat i samarbete med PELAB vid Institutionen för information och datavetenskap (IDA) på Linköpings Universitet. Programmet simulerar dynamiken i kullager och används för att studera rörelser och krafter under en given last. PC-klustret står dock kvar på NSC och underhålls av oss.

    Vi hann aldrig att integrera maskinen i NSCs superdatormiljö. SKF började använda maskinen för produktion innan vi ens fick tillfälle att installera ett kösystem. Kanske det blir möjligt att göra i nästa bygge...


    Niclas Andersson