VIA 2000 2
VIA 1999 11 1999 12
,, PC (Clustering). SAN(System Area Netw ork) T CP/IP. T CP/IP, VIA(Virtual Interface Architecture). VIA. MPI(Message Passing Interface) BSP(Bulk Synchronous Parallel) VIA, T CP/IP UDP/IP MPI, BSP VIA. :, SAN, VIA, MPI, BSP : 98419-512
1 1 1.1................................. 1 1.2................................. 4 1.3................................. 6 2 VIA / MPI/ BS P 7 2.1 VIA(Virtual Interface Architecture)................. 7 2.1.1 VIA............................. 7 2.1.2 VIA.......................... 12 2.1.3 M- VIA................................ 15 2.2 MPI(Message Passing Interface).................. 17 2.2.1 MPI................................. 17 2.2.2 MPICH............................... 19 2.3 BSP(Bulk Synchronous Parallel)................... 19 2.3.1 BSP............................ 19 2.3.2 BSPlib................................ 21 3 VIA 22 3.1 VIA............... 22 3.1.1 VIA....... 22 3.1.2.................. 25 3.1.3..... 27 3.2 VIA MPI (VMPI).............. 29
3.2.1 VIA MPI............. 30 3.3 VIA BSP (VBSPlib)............ 37 3.3.1 VIA BSP............. 37 3.3.2 VIA BSP............. 39 4 47 5 55 56
1.1......................... 2 2.1 VI.............................. 8 2.2............................... 9 2.3................................. 10 2.4 Send/Receive............... 11 2.5 VI...................... 15 2.6 M- VIA................................. 16 2.7 BSP......................... 20 3.1 VIA............. 23 3.2............... 24 3.3................... 28 3.4................ 29 4.1 VMPI MPICH................... 48 4.2 VBSPlib BSPlib.................. 49 4.3 VMPI MPICH..................... 50 4.4 VBSPlib BSPlib.................... 51 4.5 VMPI MPICH 100............... 52 4.6 VMPI MPICH Adjoint Convolution................ 52 4.7 VBSPlib BSPlib 100.............. 53 4.8 VBSPlib BSPlib Sample Sort.................... 53
3.1 VIA MPI................ 30 3.2 VIA BSP................ 38 4.1 VMPI VBSPlib...................... 49
1 1.1,. 1992 154%,, 100Mb Gb [16].,,. (Clustering). [16]. SMP(Symmetric Multi- Processor), SMP, I/O,, I/O. SMP,,,., (loosely- coupled)., 1
, (tightly- coupled). U.C Berkeley NOW (Netw ork Of W orkstation), NASA CESDIS(Center of Excellence in Space Data and Information Sciences) PC Beow ulf [5][6][7][8]. 1.1,,,, (Netw ork Interface Card, NIC),,,, [15]. 1.1 :, PC., SMP. : UNIX, LINUX, Window s NT, LINUX 2
LINUX. / / NIC(Netw ork Interface Card) : 100Mb Gb, Fast Ethernet, Gigabit Ethernet, Myrinet, Memory Channel, ServerNet. : T CP/IP, SAN(System Area Netw ork), T CP/IP. (Middlew are) :,,. : PVM(Parallel Virtual Machine) MPI(Message Passing Interface),. :.,,. MPP(Massively Parallel Processor), 3
. Gregory F. Pfister, [1]. T CP/IP LAN/W AN,.,,., SAN,. Berkeley NOW Active Message(AM), Cornell U- Net, Princeton SHRIMP(Scalable High- performance Really Inexpensive Multi- Processor) VMMC(Virtual Memory- Mapped Communication), Illinois Fast Message(FM) Intel, Compaq, Microsoft Virtual Interface Architecture(VIA) [2][3][4][5][9][10]. 1.2. VIA. VIA 4
, T CP/IP,. VIA Intel, Compaq, Microsoft,. Giganet, Berkely NERSC(National Energy Research Scientific Computing Center) LINUX M- VIA(Modular- VIA) Intel W indows NT. LINUX M- VIA. VIA,. VIA. VIA MPI BSP. MPI, MPICH. BSP, Oxford, BSPlib. Pentium Fast Ethernet. 512KB 64MB 128MB Pentium Pro 200Mhz 256KB 5
64MB Pentium Celeron 433Mhz. Fast Ethernet. VIA MPI BSP, T CP/IP UDP/IP MPICH BSPlib. VIA MPI VMPI, VIA BSPlib VBSPlib. 1.3. 2 VIA,, MPI BSP BSPlib. 3 VIA MPI BSP. 4 VIA MPI, BSP T CP/IP MPICH UDP/IP BSPlib. 5. 6
2 VIA/ MPI/ BS P 2.1 VIA( Virtual Interface Architecture),.. VIA(Virtual Interface Architecture) Intel, Compaq, Microsoft, zero- copy SAN(System Area Netw ork). T CP/IP,,.. VIA,. VIA. 2.1.1 VIA (1) VIA 7
VIA, (Virtual Interface, VI), (Completion Queue, CQ), VI- (VI Provider), VI- (VI Consumer). VI- ( ), VI- VIA. 2.1 VI (VI) VI-.,,. (W ork Queue) (Send Queue) (Receive Queue). VI-. VI- 8
. VI- VI-, (Doorbell) VI- NIC. VI- NIC. VIA.. 2.2 VI. VI, VI. VI- VI. VI. VI- 9
. VI. 2.3 VI- VI, VI-. VI- VI- NIC(Netw ork Interface Controller). VI- NIC. VI- NIC,. VI- NIC, VI- VI- NIC VI. VI- VIA. 10
(2),,,., RDMA(Remote Direct Memory Access)..,, (posting). VI- VI VI- NIC., VI-. 2.4 Send/Receive 11
2.4 Send/Receive. 2.1.2 VIA (1). VI Send/Receive Remote Direct Memory Access(RDMA) Send/Receive,. VI, VI. VI..,. RDMA 12
. RDMA RDMA W rite RDMA Read. RDMA W rite, RDMA Read., Send/Receive. RDMA,. (2),.,. VI VI- VI,. (locking). VI- VI- 13
. VI- VI VI VI- NIC,., VI- NIC. (Memory Protection T ag). VI VI-. VI. VI (Memory Protection Attribute) VI RDMA Read RDMA Write. VI. (3) VI VI - (connection- oriented). VI- VI VI VI-. VI -., VI. 2.5 14
. 2.5 VI 2.1.3 M- VIA M- VIA(Modular- VIA) Berkely NERSC(National Energy Research Scientific Computing Center) VIA LINUX. M- VIA Intel Virtual Interface Architecture Developer' s Guide VIA LINUX 1999 10 1.0,. M- VIA,. 15
RDMA, VIA. M- VIA. M- VIA API VI- (VIPL), (NIC) VIA VIA M- VIA VI,. 2.6 M- VIA M- VIA M- VIA. (Connection Manager) : VI. (Protection T ag Manager) : 16
. (Registered Memory Manager) :. (Error Queue Manager) : VIA. VIA M- VIA 1.0. M- VIA 1.0 LINUX 2.2,. Loopback DEC T ulip fast ethernet card PacketEngines GNIC- I gigabit ethernet card PacketEngines GNIC- II gigabit ethernet card 3Com 3C905 fast ethernet card Intel EtherLink fast ethernet card 2.2 MPI( Mes s ag e Pas s ing Interface) 2.2.1 MPI MPI(Message Passing Interface). MPI 17
,,., C, C++, Fortran 77. PVM(Parallel Virtual Machine), [11]. MPI Send Receive. MPI. (Standard Mode) (Buffered Mode) (Synchronous Mode) (Ready Mode),.,. 18
Blocking Send/Receive Nonblocking Send/ Receive. Blocking Send,, Blocking Receive. Nonblocking Send/ Receive. 2.2.2 MPICH MPICH Mississipi MPI SUN OS, Solaris, HP UX, AIX, IRIX, Intel Paragon, Meiko CS2, Cray T 3D, LINUX [17]. MPI MPE(Multi- Processing Environment). LINUX MPICH VIA MPI. 2.3 BS P( Bulk S y nchronous Parallel) 2.3.1 BS P BSP(Bulk Synchronous Parallel) 19
. BSP (Superstep), (Barrier)., [14]. 2.7 BSP BSP, BSP. P : L : g : P BSP,. L g 20
. h h- ( h- relations), hg. w i i, h i i T i [13]. T i = w i + gh i + L 2.3.2 BS Plib BSPlib, BSP BSP. BSPlib DRMA(Direct Remote Memory Access) Send Receive BSMP(Bulk Synchronous Message Passing). 21
3 VIA VIA. VIA MPI BSP. 3.1 VIA VIA. 3.1.1 VIA VIA. VIA VI.... 22
, VI..,.. 3.1 VIA, REQUEST, ACK., 23
. ACK. ACK,..... ( ) REQUEST ( ) REQUEST ACK ACK 3.2 24
REQUEST ACK REQUEST ACK REQUEST, REQUEST, REQUEST ACK. REQUEST ACK REQUEST REQUEST. ACK ACK, ACK REQUEST ACK. REQUEST ACK REQUEST ACK REQUEST. ACK REQUEST. REQUEST ACK. 3.1.2 25
. VIA VipCQNotify. 2 VIA VIA VI. VipCQNotify VI. VipCQNotify(VIP_CQ_HADLE CQHandle, VIP_PVOID Context, void(*handler)(vip_pvoid Context, VIP_NIC_HANDLE NicHandle, VIP_VI_HANDLE ViHandle, VIP_BOOLEA N RecvQueue)) VipCQNotify VipCQNotify VipCQNotify Handler. VipCQWait VI.. VipCQNotify Handler RecvQueue 26
VIP_FALSE, VIP_T RUE. VIA VI VI. Handler REQUEST ACK., VipCQNotify Handler. 3.1.3 VIA... VIA. 4KB, 4KB 4KB. 2 27
MPI. ( ) 4KB ( ) 4KB 3.3 ACK. ACK. ACK. VIA ACK,. REQUEST ACK REQUEST, REQUEST REQUEST ACK. 28
ACK, REQUEST ACK ACK. REQUEST, REQUEST ACK.. ( ) ( ) 3.4 3.2 VIA MPI (VMPI) VIA MPI. VIA MPI MPI 29
. 3.1. Blocking Nonblocking VIA MPI int MPI_Init(int *argc, char ***argv) int MPI_Comm_rank(MPI_Comm comm, int *rank) int MPI_Comm_size(MPI_Comm comm, int *size) int MPI_Finalize(void) int MPI_Send(void *buf, int count, MPI_Datatype datatype, int dest, int tag, MPI_Comm comm) int MPI_Recv(void *buf, int count, MPI_Datatype datatype, int src, int tag, MPI_Comm comm, MPI_Status *status) int MPI_Isend(void *buf, int count, MPI_Datatype datatype, int dest, int tag, MPI_Comm comm, MPI_Request *request) int MPI_Irecv(void *buf, int count, MPI_Datatype datatype, int src, int tag, MPI_Comm comm, MPI_Request *request) int MPI_Wait(MPI_Request *request, MPI_Status *status) int MPI_T est(mpi_request *request, int *flag, MPI_Status *status) int MPI_Iprobe(int src, int tag MPI_Comm comm, int *flag, MPI_Status *status) int MPI_Bcast(void *buf, int count, MPI_Datatype datatype, int root, MPI_Comm comm) int MPI_Get_count(MPI_Status *status, MPI_Datatype datatype, int *count) double MPI_Wtime(void) 3.1 VIA MPI 3.2.1 VIA MPI VIA MPI, 30
. (1) int MPI_Init(int *argc, char ***argv) SPMD. VIA MPI VIA. MPI_Init() rsh. VI,. VipCQNotify(),,.,.. (2) int MPI_Comm_rank(MPI_Comm comm, int *rank) 31
MPI (Rank). 0. MPI_Init(), MPI_Comm_rank(). comm MPI (Communicator) (Group) VIA MPI MPI_COMM_W ORLD. (3) int MPI_Comm_s ize(mpi_comm comm, int *size) MPI_Init(),. (4) int MPI_Finalize(void) VI. VI. (Dummy) VI. 32
(5) int MPI_Send(void *buf, int count, MPI_Datatype datatype, int dest, int tag, MPI_Comm comm) 4KB, REQUEST REQUEST REQUEST ACK,.,. MPI_Send() Blocking Send, VIA VipSendWait(). VipSendWait(). 4KB REQUEST ACK, REQUEST ACK. REQUEST REQUEST, ACK. ACK VipSendW ait() MPI_Send(). 33
(6) int MPI_Recv(void *buf, int count, MPI_Datatype datatype, int src, int tag, MPI_Comm comm, MPI_Status *status) MPI_Recv() REQUEST. MPI_Recv() REQUEST buf. MPI_Recv() Blocking Receive buf. 4KB, buf ACK MPI_Recv(). 4KB REQUEST buf ACK MPI_Recv(). MPI_Recv() buf. VIA VipRecvWait().. 34
MPI_Recv() REQUEST. 4KB ACK. 4KB ACK. MPI_Recv() 4KB buf, 4KB VipRecvWait() buf. (7) int MPI_Is end(void *buf, int count, MPI_Datatype datatype, int dest, int tag, MPI_Comm comm, MPI_Request *request) MPI_Isend() Nonblocking Send MPI_Send(), VipSendWait(). MPI_Isend() MPI_Isend(). 35
(8) int MPI_Irecv(void *buf, int count, MPI_Datatype datatype, int src, int tag, MPI_Comm comm, MPI_Reques t *request) MPI_Irecv() Nonblocking Receive MPI_Irecv() buf, buf. (9) int MPI_Wait(MPI_Reques t *reques t, MPI_Status *status) MPI_Isend() MPI_Irecv(). VipSendW ait() VipRecvWait(). (10) int MPI_T es t(mpi_reques t *reques t, int *flag, MPI_Status *status) MPI_Wait(), MPI_T est() flag. (11) int MPI_Iprobe(int s rc, int tag MPI_Comm comm, int *flag, MPI_Status *status) 36
MPI_Iprobe() flag. (12) int MPI_Get_count(MPI_Status *status, MPI_Datatype datatype, int *count) MPI_Get_count() MPI_Recv(), MPI_Wait(), MPI_T est() status. (13) double MPI_Wtime(void) MPI_Wtime() us. 3.3 VIA BS P (VBS Plib) 3.3.1 VIA BS P VIA BSP VIA MPI.. bsp_put() 37
bsp_send() 4KB. DRMA BSMP VIA BSP void bsp_begin(int maxprocs) void bsp_end(void) void bsp_init(void (*spmdproc)(void), int argc, char **argv) int bsp_nprocs(void) int bsp_pid(void) double bsp_time(void) void bsp_sync(void) void bsp_push_reg(const void *ident, int size) void bsp_pop_reg(const void *ident) void bsp_put(int pid, const void *src, void *dst, int offset, int nbytes) void bsp_get(int pid, const void *src, int offset, void *dst, int nbytes) void bsp_hpput(int pid, const void *src, void *dst, int offset, int nbytes) void bsp_set_tagsize(int *tag_nbytes) void bsp_send(int pid, const void *tag, const void *payload, int payload_nbytes) void bsp_qsize(int *nmessages, int *accum_nbytes) void bsp_get_tag(int *status, void *tag) void bsp_move(void *payload, int reception_nbytes) void bsp_hpmove(void **tag_ptr, void **payload_ptr) 2.2 VIA BSP VIA BSP BSPlib (Combining), 4KB 38
. bsp_put() bsp_send(), 4KB. bsp_put() bsp_send() 4KB,.. 3.2 VIA BSP BSPlib bsp_hpget() VIA. 3.3.2 VIA BS P (1) void bs p_init(void (*s pmdproc)(void), int argc, char **argv) ID 0 ID. ID 0 bsphosts, ID 0 rsh ID, 39
ID 0. (2) void bs p_beg in(int max procs) ID 0 bsp_init() rsh. VI, VI. VI.,. bsp_begin() bsp_time(). (3) void bs p_end(void) MPI_Finalize(). VI. VI. (Dummy) 40
VI. (4) int bsp_nprocs(void) bsp_begin() bsp_init(), bsp_begin() bsp_begin(). (5) int bsp_pid(void) bsp_init() ID. (6) double bs p_time(void) bsp_begin() bsp_begin(). (7) void bs p_push_reg(cons t void *ident, int s ize) bsp_put() bsp_get() 41
.,.. (8) void bs p_pop_reg(cons t void *ident) INVALID. (9) void bs p_put(int pid, const void *src, void *dst, int offset, int nbytes) REQUEST ACK. 4KB 4KB.,.. bsp_put(),. 42
ACK. 4KB ACK., ACK. ACK. bsp_sync(). (10) void bs p_get(int pid, cons t void *s rc, int offset, void *dst, int nbytes) bsp_get() bsp_sync(). bsp_get() bsp_get(). bsp_sync(). (11) void bs p_hpput(int pid, cons t void *s rc, void *ds t, int offset, int nbytes) bsp_hpput() 43
, bsp_hpput(). bsp_put(), bsp_sync(). (12) void bs p_s et_tagsize(int *tag_nbytes) bsp_send(). (13) void bs p_s end(int pid, cons t void *tag, const void *payload, int payload_nbytes) bsp_send() bsp_put(), bsp_send(). bsp_sync() bsp_move() bsp_hpmove(). (14) void bs p_qsize(int *nmes sages, int *accum_nbytes) bsp_send(). 44
(15) void bs p_get_tag(int *status, void *tag) status - 1,. (16) void bs p_move(void *payload, int reception_nbytes) payload. (17) void bs p_hpmove(void **tag_ptr, void **payload_ptr) bsp_move(). (18) void bs p_s ync(void) bsp_sync(). SYNC SYNC. SYNC bsp_get() bsp_get() SYNC. bsp_get() bsp_put() 45
, bsp_get() bsp_get() bsp_get(). bsp_get() bsp_put() bsp_get(), bsp_get(). bsp_get() bsp_get(). bsp_get() REQUEST. REQUEST bsp_get() REQUEST ACK. bsp_get() bsp_get() bsp_put() bsp_send(). bsp_put() bsp_send() REQUEST bsp_put(), bsp_send(). bsp_sync(). 46
4 64MB 128MB Pentium Pro 200MHz 64MB Pentium Celeron 433MHz 100Mbps. M- VIA DEC T ulip. LINUX 2.2.5 RedHat 6.0, M- VIA 1.0. VIA MPI BSP VMPI VBSPlib, MPI MPICH 1.1.2 BSPlib 1.41. MPICH T CP/IP, BSPlib LINUX T CP/IP UDP/IP. BSPlib BSPlib UDP/IP T CP/IP [18]. VMPI VBSPlib MPICH BSPlib. 4.1 VMPI T CP/IP MPICH. Pentium Celeron MPI_Send() MPI_Recv() 2, 100. 47
VMPI MPICH 6us 266us VMPI. VMPI 8KB MPICH. 4.2 VBSPlib UDP/IP BSPlib Pentium Celeron. bsp_put(), bsp_get(), bsp_send() bsp_sync() bsp_sync(). VBSPlib BSPlib. MPI VBSPlib BSPlib VIA BSP. VBSPlib BSPlib bsp_sync() 110us 290us. 48
4.1 VMPI MPICH 4.2 VBSPlib BSPlib 49
(us) MPI BSP (bytes) VMPI MPICH VBSPlib BSPlib bsp_put bsp_get bsp_send bsp_put bsp_get bsp_send 32 93 132 214 228 214 593 501 590 64 99 133 216 231 217 595 504 591 128 111 136 221 239 220 601 512 605 256 134 140 236 256 235 632 544 623 512 176 182 272 298 280 670 602 653 1K 263 271 357 387 359 746 685 762 2K 386 403 480 506 476 883 825 903 4K 570 590 673 683 667 1054 1033 1082 8K 972 981 1127 1055 1108 1442 1421 1377 16K 1665 1707 1845 1776 1815 2148 2224 2129 32K 3062 3328 3346 3245 3231 3694 3885 3716 3.1 VMPI VBSPlib 4.3 VMPI MPICH 100, ACK. 512KB VMPI, 16KB MPICH. 50
4.3 VMPI MPICH 4.4 VBSPlib BSPlib, 100 bsp_sync() bsp_sync().. BSPlib bsp_put() VBSPlib. VBSPlib. 51
4.4 VBSPlib BSPlib 4.5 4.6 MPI 100 Adjoint Convolution VMPI MPICH. 52
4.5 VMPI MPICH 100 4.6 VMPI MPICH Adjoint Convolution 4.7 4.8 VBSPlib BSPlib BSPlib. 4.7 100. 4.8 10 Quick Sort 53
Quick Sort VBSPlib. 4.7 VBSPlib BSPlib 100 4.8 VBSPlib BSPlib Sample Sort. M- VIA. M- VIA 54
zero- copy. M- VIA. VMPI VBSPlib VIA MPI BSP. MPI. BSP. PC CPU. 55
5 VIA. T CP/IP UDP/IP MPI, BSPlib VMPI, VBSPlib VIA. VIA VIA. VMPI VBSPlib. VMPI, VBSPlib,, VIA. VMPI BSP BSP VIA BSP [21]. VIA. 56
[1] Jonathan Kay and Joseph Pasquale, "Profiling and Reducing Processing Overheads in T CP/IP," IEEE/ACM T ransactions on Netw orking, Vol.4, No.6, 1996, pp.817-828. [2] Raoul A.F., Bhoedjang, T im Ruhl, Henri E. Bal, "User- Level Netw ork Interface Protocols," IEEE Spectrum, Nov. 1998, pp.53-60. [3] Dave Dunning, Greg Regnier, Gary McAlpine, Don Cam eron, Bill Shubert, F rank Berry, Anne Marie Merritt, Ed Gronke, Chris Dodd, "T he Virtual Interface Architecture," IEEE Micro, Mar.- Apr. 1998, pp.66-76. [4] T horsten von Eicken, Werner Vogels, "Evolution of the Virtual Interface Architecture," IEEE Spectrum, Nov. 1998, pp.61-68. [5] David E. Culler, Andrea A rpaci- Dus seau, Remzi Arpaci- Duss eau, Brent Chun, Steven Lumetta, Alan Mainwaring, Richard Martin, Chad Yoshikawa, Frederick Wong, "Parallel Computing on the Berkeley NOW," JSPP' 97, 1997. [6] T homas Sterling, T om Cw ik, Don Becker, John Salmon, Mike Warren, Bill Nitzberg, "An assessment of Beow ulf- class computing for NASA requirements: Initial findings from the first NASA w orkshop on Beow ulf- class clustered computing," IEEE Aerospace Conference. Mar. 1998. [7] Michael S. W arren, Donald J. Becker, M. Patrick Goda, John K. Salmon, T homas Sterling. "Parallel supercomputing w ith commodity 57
components," DPT A' 97, 1997, pp.1372-1381. [8] Daniel Ridge, Donald Becker, Phillip Merkey, T homas Sterling Becker, Phillip Merkey "Beow ulf: Harnessing the Pow er of Parallelism in a Pile- of- PCs," IEEE Aerospace, 1997. [9] Anindya Basu, Vineet Buch, Werner Vogels, T horsten von Eicken, "U- Net: A User- Level Netw ork Interface for Parallel and Distributed Computing," SOSP, Dec. 1995. [10] Matthias A. Blumrich, Richard D. Alpert, Yuqun Chen,, Douglas W. Clark, Stefanos N. Damianakis, Cezary Dubnicki, Edw ard W. Felten, Liviu Iftode, Kai Li, Margaret Martonosi, Robert A. Shillner, "Design Choices in the SHRIMP System: An Empirical Study," Proceedings of 25th Annual ACM/IEEE International Symposium on Computer Architecture, Jun. 1998. [11] Mess age Pass ing Interface F orum, "MPI: A Mes sage- Pass ing Interface Standard," May. 1994. [12] Jonathan M. D. Hill, Bill McColl, Dan C. Stefanescu, Mark W. Goudreau, Kevin Lang, Satish B. Rao, T orsten Suel, T hanasis T santilas, Rob Bisseling, "BSPlib, T he BSP Programming Library," http://w w w.bsp- w orldwide.org/, May. 1997. [13] Jonathan M. D. Hill, Stephen R. Donaldson, David B. Skillicorn, "Portability of performance w ith the BSPLib communications library," http://w w w.bsp- w orldwide.org/, May. 1997. [14] Kai Hw ang, Zhiwei Xu, "Scalable Parallel Computing,"McGraw - Hill, 1998, pp.20-23. [15] Rajkumar Buyya, "High Performance Cluster Computing," Prentice 58
Hall PT R, Vol.1 1999, pp.3-47. [16] Gregory F. Pfister, "In Search of Clusters," Prentice Hall PT R, 1998, pp.71-84. [17] Patrick Bridges, Nathan Doss, W illiam Gropp, Edw ard Karrels, Ew ing Lusk, Anthony Skjellum, "Installation Guide to mpich, a Portable Implementation of MPI," Jun. 1995. [18] S tephen R. Donaldson, Jonathan M. D. Hill, David B. Skillicorn, "BSP Clusters: high performance, reliable and very low cost," T echnical Report PRG- T R- 5-98, Sep. 1998. [19] Compaq, Intel, Microsoft, "Virtual Interface Architecture Specification Version 1.0," Dec. 1997. [20] M- VIA Documentation, http://w w w.nersc.gov/research/ft G/via/. [21], "SMP BSP,", Aug. 1999. 59
Abs tract As hardw are and softw are technologies have been developed, computer environments have rapidly been changed. T here are many researches in the field of parallel processing about clustering; substituting cheap PCs and w orkstations for super computers by interconnecting high speed netw orks to them. How ever, cluster systems, w hich are constructed in SAN (System Area Netw ork), have problems in the entire performance of systems using complicated protocols like T CP/IP. As the result of that, a lot of researches for reducing the softw are overhead of T CP/IP and for high- speed netw orking are underw ay. And VIA (Virtual Interface Architecture) protocol is the one of protocols that are made to reduce the overhead. In this paper, We implement parallel libraries, MPI(Message Passing Interface) and BSP(Bulk Synchronous Parallel) libraries, for effective parallel programming on the VIA based cluster systems and analyze them through comparing w ith MPI and BSP libraries w hich are implemented in T CP/IP or UDP/IP based environment. Key w ord: Cluster, SAN, VIA, MPI, BSP S tudent N umber: 98519-512
2. 2.,...,,,. 2.,,,,,,,,,,,
,,,,..