Title: Linux Cluster System
1Linux Cluster System
- Dept. Computer science and Engineering
- Moon Jun Hyun
- imp_at_bravo.kwangju.ac.kr
2Contents
- Linux Cluster Architecture
- Parallel Computer Architecture
- Cluster Architecture
- Linux Cluster Architecture
- Linux Cluster System Composition
- Hardware System Selection
- Node Network Configuration Composition
- Parallel Configuration Composition
- MPI Linux Cluster Programming
- Parallel Programming
- MPI Programming
- MPI Function
3Linux Cluster Architecture
- Parallel Computer Architecture
- Cluster Architecture
- Linux Cluster Architecture
4Parallel Computer Architecture
- ?? ???? ??
- ??? 2? ??? CPU? ??
- ?? ?? CPU? ??? ?? ??? ????
- ?? ?? ? ???? ?? ??
- CPU?? ??? ??? ??? ???? Counter? ??
- Parallel processing computer
- Seraial processing computer
- ?? ???? ???? ??? ?? ?????? ?? ?
- ??? ??? ????? ???? ???? ??
- ?? ????? ???? ???? ????? Construct(array,
Control structure, Procedure, Resursion)? ?? ??
?? ???? ???? ?? Programming
5Parallel Computer Architecture(cont.)
- ?? ???? ?? ??
- ??? ??? ?? ?? Coarse grained vs Fine grained
- Flynns ?? SISD, SIMD, MIMD, MISD
- ??? ??? ?? ?? Distributed memory, Shared
memory, Distributed-share memory - ??? ??? ?? ??? ?? ?? Switch, Hardware supported
remote momory access by direct memory access,
Router chip(or processor), etc - ??? ??? ??? ?? ?? Hypercupe, 2-D mesh, 3-D
torus, switch, etc - Single system image vs Multiple system image
6Parallel Computer Architecture(cont.)
- ?? ????? ?
- ??
-
- Superscalar architecture? ?? ?? ???? ??
- ?????? X(i)? Y(i)? register? ?? ???.
- X(i)? Y(i)? ???.
- ?? ??? ?? register?? Z ??? ??? ??.
- ? ??? loop? ?? ?? ????.
do i 1, MAX Z(i) X(i) Y(i) enddo
7Parallel Computer Architecture(cont.)
- ?? ???? ??
- MAX ?? X(i)? Y(i)? N?? ???? ??? ??? (MAX/N) ????.
- MAX/N?? X(i)? Y(i)? ??? ???? ???? ??? N?? ????
(MAX/N)? ????. - ??? ??? Z(i)? ? ?? ???.
8Parallel Computer Architecture(cont.)
- Amdahls law ???? ?? ?? ?? ???
- ??? ??? ??? ?? ? ???? ??? ??? ????? ????? ??? ??
Ip - ??? ??? ??? ?? ? ???? ??? ??? ????? ????? ??? ??
Is - ?? ?
- ?? ?? Ip? 90, Is? 10? ?, ?? N? ????? ???? ??
??? ?? (0.90.1)/(0.9/N0.1)10?? ????.
9Parallel Computer Architecture(cont.)
- Prallel computer?? ???? ???? ??? ?? system
overhead ???, ???? ?? ?? ??? Is ? 0? ???? ???
??? ?? ???? ?? - ??? ??? ???? ??? ??? ??? ??(surface)? ? ??? ????
??(volume)?? ???? ??? ????? ?? ???? ??? ??.
(surface-to-volume retio)
10Cluster Architecture
- Prallel Computer Architecture
- MPP(Massively Parallel Processing) CRAY T3-E
- SMP(Symmetric Multi-Processing) Pentium II, III
CPU - Cluseter Architecture
- MPP architecture
- Loosely-coupled parallel architecture
- ??? ??? ??? ???? ???? ??? ? ?? ??? ?? ???? ?
- Distrubuted computer architecture
- Dynamic load balancing, high availability
- ???? ????(OS)? ??? ?? ?? ???? ?? ?? task? ?????
???? ???? ?
11Cluster Architecture(cont.)
- Parallel Computer vs Cluster Computer
- Prallel computer
- ??? ?? Latency, Bandwith
- Cluster computer
- Job scheduleing, Resource allocation
- Beowulf Cluster
- High performance computing platform
- ??? ??
- High performance computing
- High availiability system
- Data base server
- Web server
12Linux Cluster
- Cluster? ? ?? ????? Linux? ???? Cluster
- Open source? Linux ????? ???? off-the-shelf
componets? ??? ?? ??? ?? Cluster? ?? ?? - ??? CPU? Hradware ??
- ???(generality) Linux ??? ?? ??? ????? Cluster?
?? ?? - ???(efficiency) ???? ??? ???? ??? Cluster ??
?? - ?? ???? PC? Network ??? ?? ??? ??
13Linux Cluster(cont.)
- Architecture potability
- ?????? ???? ??
- Upgrade? ???
- Software potability
- De facto standard?? message passing paradigm
implementation? ?? ????? ??? ??? - Scalability
- ???? ?? Architecture
- Avalon? ?? 140?? Alpha PC Fast Ethernet ??
- ??? ???
- ????? Compiler ??, Network component ?? ?? ?? ???
???? ?? ???? ???? ??? ? ? ?
14Linux Cluster System Composition
- Hardware System Selection
- Node Network Configuration Composition
- Parallel Configuration Composition
15Hardware System Selection
- ??? ????
- ??? ???
- ??? ??? ?? ??? ?? ??
- ??? ??(??? ???? ?)
- ??? I/O(??? ?? ??? ??? I/O ??)
- ?? CPU
- Inter vs Alpha (or other)
- Single CPU vs SMP
- ?? ???? ???(Synchronization) ??? ?? ?? ?? ????
??? ?? ??? ????.
16Hardware System Selection(cont.)
- ??? ??? ??? ???? ??
- Fast Ethernet 100 Mbps Switch
- Myrinet NIC Myrinet Switch
- Gigabit Ethernet Gigabit Switch
- SCI SCI Switch
- ATM Card ATM Switch (?)
- PLIP (?)
- Hard disk system ??
- Big disk diskless
- Disk on every nodes
- Local disk and I/O disk
17Hardware System Selection(cont.)
- Serial console or not
- ????? ?
- ??? ??? ??? ??? ??? ??
- Switch ??? ?? ??? ?? ??? ??? ????.
- Multi-level switch, Channel bonding
- Multiple networks
- Hard disk system? ??? ??
- Share noting(Distributed file system)
- Share something(Local partition NFS partition)
- Share everything(Diskless NFS)
18Node Network Configuration Composition
- Single access point vs Multiple access points
- NIS
- rsh
19Parallel Configuration Composition
- Linux Cluster?? ?? ????? ????
- Message passing
- LAM(Local Area Multi-computer)
- ???? Size? ?? ????? ??.
- ?? Size? ??
- MPICH(MPI-Chameleon)
- ? Size? ??
- PVM(Prallel Virtual Machine)
- KMPI(Kool MPI)
-
20MPI Linux Cluster Programming
- Parallel Programming
- MPI Programming
- MPI Function
- MPI Programming? ?? ??
- ??? MPI Programming ??
21Parallel Programming
- ?? ????? ??
- PRAM (Parallel Random Access Machine) Model
- QSM (Queued Share Momory) Model
- DMM (Distributed Memory Model)
- Postal Model (Explicit massage passing Model)
- BSP (Bulk Synchronous Parallel)
- HMM (Hierachial Memory Model)
- more
22Parallel Programming(cont.)
- Message passing
- ??? Local ??? ?? ???? ??? ?? ???? ??? ?? ???? ???
????, ?? ???? ??? non-local ??? ??? ?, message?
?? ??? ?? - ?? ???? ??
- ??? ?? ?? ??? ??? ??
- PVM (Parallel Virtual Machine)
- MPI (Massage Passing Interface)
- BSP (Bulk Synchronus Parallel)
23Parallel Programming(cont.)
- Data Parallel
- ???? ??? ?? ???? ??? ??? ?, ??? ??? ??? Local
???? non-local ???? ??? ??? ????? ????? ?? - ?? ???? ??? ??
- Lock-unlock mechanism
- Open_MP
- HPF
- F90
- In-between
- Linda
24MPI Programming
- ??
- 1994? MPI forum? ?? ??? ?
- MPI forum ??? ?? ???? ??? ????? ???? ???? ????
??? ?? ??? ??? ???? ?? ??? ?? - Message passing paradigm? ???? ???? ?????? ????
??? ?? - ????? industry? de facto ?? ??
- ?? ??? ????? ????? ?? ????? ???? ?? ??
- ?? ??? ??? ?? ??? Architecture??? Open_MP?? ??
??? ??? ???? ??? ?
25MPI Programming(cont.)
- ??
- ??? ?? ??? ?? ???? ???(Portability)
- ???(Effichiency)? ?? ??
- ???? ???(Functionality)
- ??
- Message passing standard Portability
- Based on previous message passing libraries
- Program interface
- Allow efficient communication
- Allow heterogeneous environment
- C and Fortran 77 binding language independent
semantics
26MPI Function
- Task management
- MPI_Init()
- MPI_Barrier()
- MPI_Wtime(), MPI_Wtick()
- MPI_Finalize()
- Communicator
- MPI_Comm_create()
- MPI_Comm_rank()
- MPI_Comm_size()
27MPI Function(cont.)
- Topology management
- MPI_Cart_create()
- MPI_Cart_coords()
- MPI_Cart_get()
- MPI_Cart_rank()
- Communication
- Blocked send-receive MPI_Send(), MPI_Recv(),
MPI_Sendrecv() - Non-blocked send-receive MPI_Isend(),
MPI_Irecv(), MPI_Wait() - Collective communication MPI_Reduce(),
MPI_Allreduce(), MPI_Bcast(), MPI_Scatter(),
MPI_Gather()
28MPI Function(cont.)
- Derived Data type
- MPI_Type_commit()
- MPI_Type_size()
- MPI_Type_struct()
- Process group
29MPI Programming? ?? ??
- Load balance or domain decompostion
- Surface-to-Volume ratio
- Deadlock and racing condition
- ?????? ??? ?? ?? ????? ???? ?? ??
- ?? ?? ? ???? ??? ???? ??
- ??? ?????? ?? ?? ???? ??(???? ?????? ???
template? ?? ?? debugging? ??) - ???? ???? ??? ???? ??? ??, ???? ??? message
passing? ??? ??? ???? ? ??? ???? ??
30MPI Programming? ?? ??
- ?????? ??? ?? ?? ????? ???? ??
- ?? ?? ? ???? ??? ?????? ??? ??
- ?? ?? ??? ??? ???? ??? ??
(ever dimiinishing returns) - Message passing? ??? ??? ???? ???
- ???? ???? ????? ?? ?? ???
- ???
31??? MPI Programming ??
- include ltstdio.hgt
- include lt/usr/local/lam-CFC/h/mpi.hgt
- define N 1000000
- main (int argc, char argv)
- int i, node, numtask, subN, iroot
- float AN
- double sum, sumt
- MPI_Init(argc, argv)
- MPI_Comm_rank(MPI_COMM_WORLD, node)
- MPI_Comm_size (MPI_COMM_WORLD, numtask)
- subN N/numtask
32??? MPI Programming ??
- for (i 0 i lt subN i) Ai (float)(i 1
nodesubN) - sum 0.0
- sumt 0.0
- iroot 0
- for (i 0 i lt subN i) sum sum Ai
-
- MPI_Reduce(sum, sumt, 1, MPI_DOUBLE, MPI_SUM,
iroot, - MPI_COMM_WORLD)
- printf(total sum f\n, sumt)
- MPI_Finalize()
-