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
Special Lectures on Parallel
Programming
김 재 삼
2005 년 8 월
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
$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
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 ------------------------