CPU CPU PC 1
3GHz, 10GHz 0.13m VLIW L3 Intel Hyperthreading Intel IA32: Xeon, P4 PC Intel IA64: Itanium2 64 Itanium2 (Deerfield) AMD x86-64: Opteron x8664 x86 Sun SPARC,IBM Power, Alpha, MIPS, PCPDA P = CV 2 f (P: CVf DVS: Dynamic Voltage Scaling) (Intel SpeedStep, ) ARM: Strong ARM, Xscale ( Mobile Pentium, Centrino Crusoe (TransMeta) SH: SH-1, SH-2, SH-3, SH-4, SuperSH DragonBall ( MIPSVRNEC) PowerPC(IBM) M32R, 2
(parallel processing) HPC(High Performance Computing) HTC (High Throughput Computing) (distributed processing) RMI, J2EE, Jini (parallel) CPU (concurrent) CPU (thread) (multi-thread) 3
for(i=0;i<1000; i++) S += A[i] 1 2 3 4 1000 + S 1 2 250 251 500 501 750 751 1000 + + + + + S CPU CPU CPU CPU BUS CPU CPU 4
5 CPU CPU CPU CPU MEM MEM MEM MEM Network CPU MPPMassively Parallel Processing) CPU CPU CPU CPU BUS CPU CPU CPU CPU MEM MEM MEM MEM Network
(Message Passing) (shared memory) DSMon MPI,PVM pthread, solaris thread, NT thread OpenMP annotation thread HPF annotation, distribution hint Fancy parallel programming languages 6
sendreceive int a[250]; /* 250*/ main(){ /* */ int i,s,ss; s=0; for(i=0; i<250;i++) s+= a[i]; /**/ if(myid == 0){ /* 0*/ for(proc=1;proc<4; proc++){ recv(&s,proc); /**/ s+=ss; /**/ } } else {/* 0*/ send(s,0); /* 0*/ } } POSIX Pthread, Solaris thread for(t=1;t<n_thd;t++){ r=pthread_create(thd_main,t) } thd_main(0); for(t=1; t<n_thd;t++) pthread_join(); int s; /* global */ int n_thd; /* number of threads */ int thd_main(int id) { int c,b,e,i,ss; c=1000/n_thd; b=c*id; e=s+c; ss=0; for(i=b; i<e; i++) ss += a[i]; pthread_lock(); s += ss; pthread_unlock(); return s; } 7
OpenMP OK! #pragma omp parallel for reduction(+:s) for(i=0; i<1000;i++) s+= a[i]; OpenMP (Fortran/C/C++)directive OpenMP 5%95% SGI Origin /ASCI Blue Mountain System SUN Enterprise PC-based SMP ISV Oct. 1997 Fortran ver.1.0 APINov 2000 ver.2.0 API Oct. 1998 C/C++ ver.1.0 API http://www.openmp.org/ 8
PC PC Poorman s supercomputer Sun IPC cluster etlwiz Alpha cluster, 100 BASE-TX SWITCHATM beowulf class RWCP PC cluster MyrinetGigabit Ethernet, Fiber Channel, DEC Memory Channel, IBM SP2 network UCB CLUMPS, RWC COMPaS) 9
ethernet : 10Mbps 100Mbps Gigabit either MyrinetSAN Network I/O PVM, P4, TCGMSGMPIMPI2 20DEC alpha50smp 160 100 Base Ethernet2150 myrinet3080 gigabit ether? Free(netBSD, linux) Solaris/x86, Digital Unix Windows NT TCP/IPMPICH ( 50 10
Clusters in RWCP TRC RWC PC Cluster I (32 Pentiums 166 MHz) 1996 RWC Workstation Cluster I (5 SS20s 75 MHz) 1995 RWC Workstation Cluster II (36 SS20s 75 MHz) 1996 RWC PC Cluster II (64 Pentium Pros 200 MHz) 1997 RWC Alpha Cluster I Expanded RWC PC Cluster II (128 Pentium Pros 200 MHz) 1998 (32 Alpha 21164s 500 MHz) 1998 RWC SCore Cluster I (16 dual Pentium III 500 MHz 16 Compaq XP-1000 500MHz) 1999 SCore PM TPC/IP Myrinet 11
SCore Version 3 Software Architecture Applications (e.g. PAPIA: Parallel Protein Information Analysis, pkiva: parallel diesel engine simulator, and a Real-Time Power Grid Simulator) MPC++ SCASH MPICH-SCore PM2 PM2 SCore-D Global Operating System PM II (Myrinet) PM/Shmem PM/Myrinet PM/Ethernet PM/UDP (Myrinet) PM/Ethernet Socket PM/Shmem PM/Myrinet Linux driver UDP/IP driver driver Ethernet driver scout Myrinet NIC Ethernet NIC SCore-D PM firmware Processors Pentium and and Alpha, SMP SMP Network Myrinet 10/100/1000 Mbps Ethernet MPI(MPICH- Any SCore) Any Other networks supporting UDP UDP (SCASH) Linux (MPC++ MTTL) SuSE, Redhat, and and TurboLinux User Level Kernel Level NIC Level OpenMP HPF Gigabit Ether 100MB/sTCP/IP/Gigabit30MB/s VIA Score-D/gang scheduling(rwcp), implicit co-scheduler (UCB) RWCP 1000CPU/512 Myrinet NCSASandia-Lab 12
PCseti@home,... E-mail www,. CPU,Storage,...) Grid: (Power Grid) 13
(Grid Forum,,ApGrid) Grid: (meta-computing, MPI-G,, ITBL?) PC/WS(computing portal, GridPRC) (data intensive computing, gfarm for ATLAS) (, (AccessGrid) SETI@home, P2P,, XtermWeb Globusmajorgrid ( globusrun : globus rsh MPICH-G: globusmpich gftp: globusftp Nimrod-G(enfusion): Gridjob dispatcher. job GUI Condor-G: GridRPC: Grid Ninf-G, NetSolve,. OmniPRC 14
Globus Resource management ; GRAM Communication Infrastructure Globus IO Metacomputing Directory Service MDS GridGlobus LDAP Globus Security Interface GSI X509 Ceriticate-base Single-Sign-ON Hearbeat Monitor HBM Remote data access GASS executable management GEM master-slave Grid Environment Cluster Cluster Cluster 15
Grid Globus shelljobsubmit MPICH-G GridMPI ( Grid RPC: Ninf, NetSolve RPC activerequest Ninf_call_async(A, ) Ninf_call_async(B, ) Ninf_call_wait() OmniRPC OmniRPC 16
P2P P2Ppear to pear) (Gnudella, ) PC PC PC out-going connection JXTA (supported by SUN) GGF (Global Grid Forum) IETFW3C OGSA(Open Grid Service Architecture) GridWeb Service Globus Toolkit 3 IBMleading National Research Grid Project (NaReGI) P2P JXTA by SUN 17
PC 18