2nd KIAS CAC Summer School on Parallel Computing by 바죠

2nd KIAS CAC Summer School on Parallel Computing
June 30 - July 2, 2011
http://cac.kias.re.kr/School/2011summer/

Important notices

Deadline for Application is June. 20, 2011.

The list of participants will appear on 21th on the web.

Please check your name on the homepage after 21th.

Participants

Graduate Student, Researcher, and Professor

Preparation

Please bring your laptop with a ssh program

(Xmanager, VNC etc.) installed.


Program

6.30 (Thur)

8:30 ~ 9:00

Registration

9:00 ~ 9:10

Welcome Address      Changbom Park(KIAS)

9:10 ~ 10:00

Introduction to Parallel Computing    Seyong Kim(Sejong Univ.)

10:00 ~ 10:50

MPI I Tutorial / Exercise    Keehyoung Joo(KIAS)

10:50 ~11:20

Coffee Break

11:20 ~ 12:10

MPI I Tutorial / Exercise    Keehyoung Joo(KIAS)

12:10 ~ 14:00

Photo, Lunch and Team Meeting

14:00 ~ 15:40

MPI I Tutorial / Exercise    Keehyoung Joo(KIAS)

15:40 ~ 16:10

Coffee Break

16:10 ~ 17:50

MPI II Tutorial / Exercise    Hongsuk Yi(KISTI)

18:00

Banquet

7.01 (Fri)

9:00 ~ 09:50

Cuda Tutorial / Exercise    Jongsoo Kim(KASI)

09:50 ~ 10:20

Coffee Break

10:20 ~ 12:00

Cuda Tutorial / Exercise    Jongsoo Kim(KASI)

12:00 ~ 14:00

Lunch and Team Meeting

14:00 ~ 14:50

Cuda Tutorial / Exercise    Jongsoo Kim(KASI)

14:50 ~ 15:40

Cuda Parallel Algorithms (cuBLAS, etc)    Hyun Gon Ryu(NVIDIA)

15:40 ~ 16:10

Coffee Break

16:10 ~ 17:00

Cuda Applications     Juhan Kim(KIAS)

17:00 ~ 18:00

Team Project

7.02 (Sat)

9:30 ~ 10:20

Parallel Numerical Algorithms (intel MKL)     Seungwoo Lee(moasys)

10:20 ~10:50

Coffee Break

10:50 ~ 12:30

Parallel MC/MD Algorithm Basic     In-Ho Lee(KRISS)

12:30 ~ 14:00

Lunch

14:00 ~ 16:00

Team Presentation / Discussion     Juhan Kim & Keehyoung Joo(KIAS)

AwardingJooyoung Lee(KIAS)

16:00

Closing





PS.

프로그램: 동영상 강의가 추가되었다.

핑백

덧글

  • happy- 2011/07/05 15:01 # 답글

    바죠님- 질문이있습니다.
    홈페이지를통해서. MPI를 공부하고 CFD 코드를 병렬화하는 중에있습니다.
    병렬화하는 과정에서 새로운 TEMP ARRAY를 만드는 것에 대해서 질문드립니다.

    TEMPARRY = 0.0

    DO I=1,N,NPROCS
    TEMPARRY(I) = I
    ENDDO

    MPI_ALLREDUCE( TEMPARRY, ARRY, KOUNT, MPI_REAL, MPI_SUM, COMM, IERR)

    이런 템플릿으로 병렬화작업중입니다-

    계산하고자하는 데이터가 많을수록,
    병렬화하는 구간이 많아질수록,
    TEMPARRAY의 메모리차지도많아집니다-
    TEMPARRY없이 통신하는 방법이 있습니까?
    DEALLOCATE로 메모리를 확보하는 방법밖에 없나요?
  • 바죠 2011/07/07 19:27 # 삭제

    안녕하세요?

    temparray가 가지는 노드 의존성이 아주 특이한 경우입니다.
    공간분할을 시도한 경우와 다른것 같습니다. para_range처럼 공간을 분리할 수 있는지 모르겠습니다.
    1차원 방식으로 연속한 노드 사이가 물리적으로 연속한 변수가 되도록 잡는 것이 일반적입니다. 1차원 방향으로로만 병렬화를 시킬 수 있는지를 체크해 볼 필요가 있습니다.

    temparray메모리가 큰것은 문제가 아닙니다. 메모리 크기 보다 얼마나 자주 통신을 하는가가 더욱 중요합니다. 자주 하지 않는 방식을 택하는 것이 더욱 중요합니다.
    통신없이는 병렬 컴퓨팅이 되질 않습니다. 반드시 통신은 필요합니다.
  • 바죠 2011/07/08 08:34 # 삭제

    temparray의 노드 의존성을 다르게 설계할 수 있나요?
    계산하시는 목적에 따라서 다를 수 있습니다만, 계속하여 같은 프로그램을 많이 사용할 경우, 병렬 효율성은 매우 중요한 항목입니다.
    상황에 따라서 다를 수 있습니다만, 대략 32 또는 64 노드에서 75 %이상의 speedup은 나오도록 설계해야합니다.
    그렇게 하기위해서는 최소한의 노드간 통신을 확보해야만 합니다. 이 경우, serial code의 알고리듬을 잘 이해해야만 합니다.
  • happy- 2011/07/08 15:49 # 답글

    감사합니다.^-^
    고민을더해보고.또질문하겠습니다-
  • 바죠 2011/07/08 20:40 #

    실제로 병렬화에는 몇 가지 방식이 공존할 수 있습니다.
    이를경우 각각 시도해보는 것이 가장 좋습니다.
    물론, 가장 간단하면서도 많은 수의 노드에서 높은 speedup을 낼 수 있는 것이 최고로 좋은 병렬화입니다.
  • happy- 2011/10/10 15:44 # 답글


    바죠님-
    mpi subroutine중 bcast에 대한 질문이 있습니다.

    제문제는 '통신순서에 따른 통신시간의 차이'입니다.
    node를 두개에서 서로 통신을 하고 상황에서 다른 조건은 모두 일정합니다.
    서로 원소를 1개씩 주고 받는 상황에서.
    #1.
    call mpi_bcast(A(1),1,mpi_real,0,comm,ierr)
    call mpi_bcast(A(2),1,mpi_real,1,comm,ierr)

    #2.
    call mpi_bcast(A(2),1,mpi_real,1,comm,ierr)
    call mpi_bcast(A(1),1,mpi_real,0,comm,ierr)

    #1,#2의 차이는 0번부터 bcast하느냐 1번부터 하느냐 차이밖에없어서.
    제가 생각할때는 속도가 엇비슷해야 한다고 생각합니다.
    그런데 차이가 있습니다.(여러가지 경우를 해본 결과 제 케이스의 경우 그렇습니다.)
    경과시간(mpi_wtime)은 #1:#2 = 1 : 50입니다.
    이것은 교착(deadlock)때문에일어나는일인가요?

    또다른 경우에는 #2로 보낸 경우가 더 빠른경우도 있어서 더 복잡해집니다. (그 경우에는 보내는 원소수가 500개 정도 됩니다.)
    원소수에 따라서 보내는 순서를 결정하는 것이나 케이스에 따라서 보내는 순서를 바꿔주는 것입니까.
    node수가 많아지면 보내는 순서의 경우수가 많아질텐데. 어떤 룰이 있는건지, 제가 뭘 실수한건지 알려주세요-


    아님 본질적으로 원소 1개 보내는 bcast 속도(절대량)에 따라서 시간이 좌지우지되는 알고리즘을 병렬화하는게 문제일까요.?
  • 바죠 2011/10/12 11:30 # 삭제


    1. mpi_bcast함수는 모든 노드에서 동시에 실행되어야 하는 특징이 있습니다. 특정 노드에서만 실행되는 것이 아닙니다.
    2. mpi_bcast함수는 데이터를 "주고 받는" 함수가 아닙니다. 일방적으로 해당 어레이에 복사해버리는 것입니다. 한 노드의 데이터를 방송하는 그 이외의 모든 노드의 데이터 저장장소로 복사하는 것입니다.
    3. 위의 예에서, A(1), A(2)가 각각 노드 0, 노드 1에서 어떠한 순서로 생성되는 것인가가 매우 중요해집니다. 이 순서가 실제로 달라 질 수 있습니다. 계산 할 때마다.
    A에레이를 각 노드에서 구간별로 계산하시는 케이스 입니다. 이 때, 구간별로 생성되는 속도가 일반으로 다를 수 있습니다. 한 노드에서 생성하시는 것이 좋습니다.
    4. 통상적으로 mpi_bcast는 한 노드에서 계산을 모두 다 한 다음 각 노드들로 전송하는 것이 가장 기본적인 사용 예입니다.
  • 바죠 2012/06/27 10:28 # 답글

    xmanager 연결할 때, 아래와 같이 하면 큰 폰트로 글씨를 표시할 수 있다.

    /usr/bin/xterm -ls -display $DISPLAY -fn 12x24 -fg gray -bg black

    :set background=light
    :set background=dark

    :syntax off
    :syntax on

    :set paste
댓글 입력 영역

최근 포토로그