20
Special Lectures on Parallel Programming 김 김 김 2005 김 8 김

Special Lectures on Parallel Programming

  • Upload
    oneida

  • View
    35

  • Download
    0

Embed Size (px)

DESCRIPTION

Special Lectures on Parallel Programming. 김 재 삼 2005 년 8 월. Memory - Hierarchy. Typical Capacity. Typical Access Time. Registers. < 1 KB. 1 nsec. Cache. L1+L2 = 640 K. 2 nsec. Main Memory. 512~1024 MB. 10 nsec. Cost = 0.04 cent/KB. Magnetic Disks. 8 msec. 100~400 GB. - PowerPoint PPT Presentation

Citation preview

Page 1: Special Lectures on Parallel Programming

Special Lectures on Parallel

Programming

김 재 삼

2005 년 8 월

Page 2: Special Lectures on Parallel Programming
Page 3: Special Lectures on Parallel Programming
Page 4: Special Lectures on Parallel Programming
Page 5: Special Lectures on Parallel Programming
Page 6: Special Lectures on Parallel Programming
Page 7: Special Lectures on Parallel Programming
Page 8: Special Lectures on Parallel Programming

Memory - Hierarchy

Registers

Cache

Main Memory

Magnetic Disks

Magnetic Tapes

< 1 KB

L1+L2 = 640 K

512~1024 MB

100~400 GB

> 1 TB

1 nsec

2 nsec

10 nsec

8 msec

100 sec

Typical Access Time Typical Capacity

Cost = 0.03 cent/KB

Cost = 0.04 cent/KB

Page 9: Special Lectures on Parallel Programming
Page 10: Special Lectures on Parallel Programming
Page 11: Special Lectures on Parallel Programming
Page 12: Special Lectures on Parallel Programming
Page 13: Special Lectures on Parallel Programming
Page 14: Special Lectures on Parallel Programming
Page 15: Special Lectures on Parallel Programming

$INIT ONC23456 1 2 3 4 5 6 | PROGRAM CARTESIAN

INCLUDE 'mpif.h' INTEGER DIMS(2),COM2D,COORDS(2),SRC,DEST,GOORDS(2) LOGICAL PERI(2),REORDER CHARACTER*80 DUMMYC CALL ENVIRON(NODENUM,NPROC) ID = NODENUM

IF (ID .EQ. 0) OPEN(10,FILE='test0',STATUS='UNKNOWN') IF (ID .EQ. 1) OPEN(11,FILE='test1',STATUS='UNKNOWN') IF (ID .EQ. 2) OPEN(12,FILE='test2',STATUS='UNKNOWN') IF (ID .EQ. 3) OPEN(13,FILE='test3',STATUS='UNKNOWN') IF (ID .EQ. 4) OPEN(14,FILE='test4',STATUS='UNKNOWN') IF (ID .EQ. 5) OPEN(15,FILE='test5',STATUS='UNKNOWN')

MJMP = 2 GOORDS(1) = 1 GOORDS(2) = 2

DIMS(1) = 3 DIMS(2) = 2

PERI(1) = .TRUE. PERI(2) = .TRUE. REORDER = .FALSE.

CALL MPI_CART_CREATE(0,2,DIMS,PERI,REORDER,COM2D,IERR)

CALL MPI_CART_COORDS(COM2D,NODENUM,2,COORDS,IERR)

CALL MPI_CART_RANK(COM2D,GOORDS,NUMBER,IERR) IF (NODENUM .EQ. 0) PRINT *, NUMBER

CALL MPI_CART_SHIFT(COM2D,0,MJMP,SRC,DEST,IERR)

DO I=0,5 IF (NODENUM .EQ. I) THEN WRITE( * ,100) NODENUM,COORDS(1),COORDS(2),SRC,DEST ENDIFC CALL MPI_BARRIER(0,IERR) ENDDO

Page 16: Special Lectures on Parallel Programming

IF (ID .EQ. 0) WRITE(10,100) ID,COORDS(1),COORDS(2),SRC,DEST IF (ID .EQ. 1) WRITE(11,100) ID,COORDS(1),COORDS(2),SRC,DEST IF (ID .EQ. 2) WRITE(12,100) ID,COORDS(1),COORDS(2),SRC,DEST IF (ID .EQ. 3) WRITE(13,100) ID,COORDS(1),COORDS(2),SRC,DEST IF (ID .EQ. 4) WRITE(14,100) ID,COORDS(1),COORDS(2),SRC,DEST IF (ID .EQ. 5) WRITE(15,100) ID,COORDS(1),COORDS(2),SRC,DESTC

100 FORMAT('NODE',I3,' is at (',I2,',',I2,'). from',I3,' and to',I3)

CALL MPI_FINALIZE(IER)

STOP END

C ---------------------------- End of MAIN ----------------------------

SUBROUTINE ENVIRON(NODENUM,NPROC) INCLUDE 'mpif.h'

CALL MPI_INIT(IER) CALL MPI_COMM_RANK(0,NODENUM,IER) CALL MPI_COMM_SIZE(0,NPROC,IER)

RETURN END

C ---------------------------- End of ENVIRON ------------------------

Page 17: Special Lectures on Parallel Programming
Page 18: Special Lectures on Parallel Programming
Page 19: Special Lectures on Parallel Programming
Page 20: Special Lectures on Parallel Programming