국가슈퍼컴퓨팅 공동활용체제구축

Size: px
Start display at page:

Download "국가슈퍼컴퓨팅 공동활용체제구축"

Transcription

1 Partnership & Leadership for the nationwide SuperComputing Infrastructure Parallel Programming PLSI 사용자 응용기술지원팀 컴퓨팅브릿지 정진우 PLSI 사용자 응용기술지원팀

2 Outline Introduction to Parallel Programming Introduction to OpenMP OpenMP Programming OpenMP Applications Parallelization of Serial Code PLSI 사용자 응용기술지원팀 Partnership & Leadership for the nationwide SuperComputing Infrastructure

3 Introduction to Parallel Programming PLSI 사용자 응용기술지원팀 Partnership & Leadership for the nationwide SuperComputing Infrastructure

4 Parallel Processing (1/3) Parallel processing is the ability to carry out multiple operations or tasks simultaneously. The term is used in the contexts of both human cognition, particularly in the ability of the brain to simultaneously process incoming stimuli, and in parallel computing by machines. PLSI 사용자 응용기술지원팀 Partnership & Leadership for the nationwide SuperComputing Infrastructure

5 Parallel Processing (2/3) Serial execution Inputs Parallel execution Outputs PLSI 사용자 응용기술지원팀 Partnership & Leadership for the nationwide SuperComputing Infrastructure

6 Parallel Processing (3/3) Purpose : High performance computing A decrease in wall-clock time An increase in scale of problems Classes of parallel computers Multi-core computing : A multi-core processor is a processor that multiple execution units (core) on the same chip. Symmetric multiprocessing : A symmetric multiprocessor (SMP) is a computer system with multiple identical processors that share memory and connect via a bus. Distributed computing : A distributed computer is a distributed memory computer system in which the processing elements are connected by a network. PLSI 사용자 응용기술지원팀 Partnership & Leadership for the nationwide SuperComputing Infrastructure

7 Why parallelization? Limitation of high performance single processor Limitation of transmission speed (copper : 9cm/nanosec) Limitation of miniaturization High speed network, distributed and multiprocessor systems -> Parallel computing Financial high performance computing system PLSI 사용자 응용기술지원팀 Partnership & Leadership for the nationwide SuperComputing Infrastructure

8 Program A program (also a software program, or just a program) is a sequence of instructions written to perform a specified task for a computer. The program has an executable form that the computer can use directly to execute the instructions. PLSI 사용자 응용기술지원팀 Partnership & Leadership for the nationwide SuperComputing Infrastructure

9 Process A computer program or an instance of a program running concurrently with other programs. A computer program is a passive collection of instructions, a process is the actual execution of those instructions. Several processes may be associated with the same program; for example, opening up several instances of the same program often means more than one process is being executed. PLSI 사용자 응용기술지원팀 Partnership & Leadership for the nationwide SuperComputing Infrastructure

10 Thread A thread of execution is the smallest unit of processing that can be scheduled by an operating system. It generally results from a fork of a computer program into two or more concurrently running tasks. The implementation of threads and processes differs from one operating system to another, but in most cases, a thread is contained inside a process. PLSI 사용자 응용기술지원팀 Partnership & Leadership for the nationwide SuperComputing Infrastructure

11 process and thread Thread Process PLSI 사용자 응용기술지원팀 Partnership & Leadership for the nationwide SuperComputing Infrastructure

12 Shared memory system Single thread time S1 time S1 fork Multi-thread Thread P1 P1 P2 P3 P4 P2 P3 S2 join Shared address space P4 S2 Process Process PLSI 사용자 응용기술지원팀 Partnership & Leadership for the nationwide SuperComputing Infrastructure

13 Message-passing interface time Serial S1 time S1 S1 Messagepassing S1 S1 P1 P1 P2 P3 P4 P2 S2 S2 S2 S2 P3 Process 0 Process 1 Process 2 Process 3 P4 Node 1 Node 2 Node 3 Node 4 S2 Data transmission over the interconnect Process PLSI 사용자 응용기술지원팀 Partnership & Leadership for the nationwide SuperComputing Infrastructure

14 performance test performance test speedup efficiency cost PLSI 사용자 응용기술지원팀 Partnership & Leadership for the nationwide SuperComputing Infrastructure

15 speedup Speed-up : S(n) running time of serial program running time of parallel program (#n S(n) = = processes) t s t p runtime = Wall-clock time PLSI 사용자 응용기술지원팀 Partnership & Leadership for the nationwide SuperComputing Infrastructure

16 Maximum speedup t s S(n) = = t p t s ft s + (1-f)t s /n S(n) = 1 f + (1-f)/n Maximum speedup ( n ) S(n) = 1 f PLSI 사용자 응용기술지원팀 Partnership & Leadership for the nationwide SuperComputing Infrastructure

17 example of speedup f = 0.2, n = 4 Serial Parallel process process 2 process 3 process 4 cannot be parallelized can be parallelized 1 S(4) = = (1-0.2)/4 PLSI 사용자 응용기술지원팀 Partnership & Leadership for the nationwide SuperComputing Infrastructure

18 Efficiency Efficiency : E(n) t s t p ⅹn S(n) n E(n) = = [ⅹ100(%)] speedup is 2 via 10 processes : E(10) = 20% speedup is 10 via 100 processes : E(100) = 10% PLSI 사용자 응용기술지원팀 Partnership & Leadership for the nationwide SuperComputing Infrastructure

19 Cost Cost Cost = runtime ⅹ # of processes Serial program : Cost = t s t s n Parallel program : Cost = t p ⅹ n = S(n) = t s E(n) > examples t s t p n S(n) E(n) Cost PLSI 사용자 응용기술지원팀 Partnership & Leadership for the nationwide SuperComputing Infrastructure

20 Introduction to OpenMP PLSI 사용자 응용기술지원팀 Partnership & Leadership for the nationwide SuperComputing Infrastructure

21 History of OpenMP Version 3.0 Complete Specifications - (May, 2008). Version 3.0 Summary Card C/C++ (November, 2008) Version 3.0 Summary Card Fortran (revised March, 2009) Version (May 2005, combined C/C++ and Fortran) C/C++ version (March 2002) C/C++ version 2.0 with change bars reflecting changes from (March 2002) FORTRAN version (November 2000) FORTRAN version 2.0 with change bars reflecting changes from 1.1 (November 2000) C/C++ version (October 1998) FORTRAN version (November incorporates April 1999 Interpretations and Errata) FORTRAN version (October 1997) PLSI 사용자 응용기술지원팀 Partnership & Leadership for the nationwide SuperComputing Infrastructure

22 What is OpenMP? Multi-thread parallel programming Application interface for SMP system Open specifications for Multi Processing PLSI 사용자 응용기술지원팀 Partnership & Leadership for the nationwide SuperComputing Infrastructure

23 Shared memory system Memory I/O Bus or Crossbar Switch Cache Cache Cache Cache Processor Processor Processor Processor PLSI 사용자 응용기술지원팀 Partnership & Leadership for the nationwide SuperComputing Infrastructure

24 Structure of OpenMP PLSI 사용자 응용기술지원팀 Partnership & Leadership for the nationwide SuperComputing Infrastructure

25 OpenMP programming model Thread-Based Fork-Join model F J F J O O O O Master Thread R K I N R K I N [Parallel Region] [Parallel Region] PLSI 사용자 응용기술지원팀 Partnership & Leadership for the nationwide SuperComputing Infrastructure

26 Introduction to OpenMP (1/5) Directive Directive base programming Almost Compilers support to OpenMP directives Serial code PROGRAM exam ialpha = 2 DO i = 1, 100 a(i) = a(i) + ialpha*b(i) ENDDO PRINT *, a END Parallel code PROGRAM exam ialpha = 2!$OMP PARALLEL DO DO i = 1, 100 a(i) = a(i) + ialpha*b(i) ENDDO!$ OMP END PARALLEL DO PRINT *, a END Supercomputing Center 26

27 Introduction to OpenMP (2/5) Fork-Join ialpha = 2 export OMP_NUM_THREADS = 4 (Master Thread) (Fork) DO i=1,25 DO i=26,50 DO i=51,75 DO i=76, (Join) (Master) (Slave) (Slave) (Slave) PRINT *, a (Master Thread) Supercomputing Center 27

28 Introduction to OpenMP (3/5) OpenMP directive gramma Fortran (fix form:f77) Fortran (free form:f90) C Starting of direcitve!$omp <directive> C$OMP <directive> *$OMP <directive>!$omp <directive> #pragma omp <directive> Continuati on!$omp <directive>!$omp&!$omp <directive> & #pragma omp \ Selective compile Starting point!$ #ifdef _OPENMP C$!$ *$ #endif First column No rule No rule Supercomputing Center 28

29 Introduction to OpenMP (4/5) Useful directives Fortran!$OMP PARALLEL!$OMP DO!$OMP PARALLEL DO!$OMP CRITICAL PRIVATE/SHARED DEFAULT REDUCTION C #pragma omp parallel #pragma omp for #pragma omp parallel for #pragma omp critical private/shared default reduction Supercomputing Center 29

30 Introduction to OpenMP (5/5) Compile and execution of OpenMP programs compile IBM Fortran xlf_r qsmp=omp o ompprog ompprog.f C xlc_r qsmp=omp o ompprog ompprog.c Intel Fortran ifort -openmp o ompprog ompprog.f C icc -openmp o ompprog ompprog.c execution./ompprog Supercomputing Center 30

31 Example: PI Supercomputing Center 31

32 Example: PI Fortran PARAMETER (NUM_STEPS= ) SUM = 0.0 STEP = 1.0/REAL(NUM_STEPS) DO I = 1, NUM_STEPS X=(I-0.5)*STEP SUM = SUM + 4.0/(1.0+X*X) ENDDO PI=STEP*SUM static long num_steps = ; double step; void main () { int i; double x, pi, sum = 0.0; step = 1.0/(double) num_steps; for (i=1;i<= num_steps; i++){ x = (i-0.5)*step; sum = sum + 4.0/(1.0+x*x); } pi = step * sum; } C Supercomputing Center 32

33 Parallel: Fortran!$OMP PARALLEL PRIVATE(ID,X) ID = OMP_GET_THREAD_NUM() SUM(ID)=0.0 DO I = ID, NUM_STEPS-1, NUM_THREADS; X = (I+0.5)*STEP; SUM(ID) = SUM(ID)+ 4.0/(1.0+X*X); ENDDO!$OMP END PARALLEL PI=0.0 DO I=0, NUM_THREADS-1 PI = PI + SUM(I)*STEP ENDDO Supercomputing Center 33

34 Parallel: C #pragma omp parallel private(id,x) { id = omp_get_thread_num(); sum[id]=0.0; for (i=id; i< num_steps; i=i+num_threads){ x = (i+0.5)*step; sum[id] += 4.0/(1.0+x*x); } } for(i=0, pi=0.0;i<num_threads;i++) pi += sum[i] * step; Supercomputing Center 34

35 do/sections/single Master thread Master thread Master thread F O R K F O R K F O R K DO / for loop team SECTIONS team SINGLE J O I N J O I N J O I N Master thread Master thread Master thread do/for sections single Supercomputing Center 35

36 DO/for: Fortran!$OMP PARALLEL PRIVATE(ID) ID = OMP_GET_THREAD_NUM() SUM(ID)=0.0!$OMP DO PRIVATE(X) DO I = 0, NUM_STEPS-1 X = (I+0.5)*STEP SUM(ID) = SUM(ID) + 4.0/(1.0+X*X) ENDDO!$OMP END DO!$OMP END PARALLEL PI=0.0 DO I=0, NUM_THREADS-1 PI = PI + SUM(I)*STEP ENDDO Supercomputing Center 36

37 Do/for: C #pragma omp parallel private(id) { id = omp_get_thread_num(); sum[id] = 0.0; #pragma omp for private(x) for (i=0; i<num_steps; i++){ x = (i+0.5)*step; sum[id] += 4.0/(1.0+x*x); } } for(i=0, pi=0.0; i<num_threads; i++) pi += sum[i] * step; Supercomputing Center 37

38 sections : Fortran!$OMP PARALLEL PRIVATE(ID) ID = OMP_GET_THREAD_NUM() SUM(ID)=0.0!$OMP SECTIONS PRIVATE(X)!$OMP SECTION DO I = 0, (NUM_STEPS-1)/2 X = (I+.5)*STEP SUM(ID)= SUM(ID) + 4.0/(1.0+X*X) ENDDO!$OMP SECTION DO I = (NUM_STEPS-1)/2+1, NUM_STEPS-1 X = (I+.5)*STEP SUM(ID)= SUM(ID) + 4.0/(1.0+X*X) ENDDO!$OMP END SECTIONS Supercomputing Center 38

39 sections: C #pragma omp parallel private(id) { id = omp_get_thread_num(); sum[id]=0.0; #pragma omp sections private(x) { #pragma omp section for (i=0; i< num_steps/2; i++){ x = (i+0.5)*step; sum[id] += 4.0/(1.0+x*x); } #pragma omp section for (i= num_steps/2+1; i< num_steps; i++){ x = (i+0.5)*step; sum[id] += 4.0/(1.0+x*x); } } } Supercomputing Center 39

40 critical (1/3) Fortran C!$OMP CRITICAL [(name)] structured block!$omp END CRITICAL [(name)] #pragma omp critical [(name)] structured block Supercomputing Center 40

41 critical (3/3)!$OMP PARALLEL PRIVATE(i) SHARED(cnt1, cnt2)!$omp DO DO i = 1, n do_work IF (condition1) THEN!$OMP CRITICAL (name1) cnt1 = cnt1 + 1!$OMP END CRITICAL (name1) ELSE!$OMP CRITICAL (name1) cnt1 = cnt1-1!$omp END CRITICAL (name1) IF (condition2) THEN!$OMP CRITICAL(name2) cnt2 = cnt2 + 1 ENDIF!$OMP END CRITICAL (name2) ENDIF ENDDO!$OMP END PARALLEL Supercomputing Center 41

42 critical: Fortran!$OMP PARALLEL PRIVATE(ID, X, SUM) ID = OMP_GET_THREAD_NUM() SUM=0.0 DO I = ID, NUM_STEPS-1, NUM_THREADS X = (I+0.5)*STEP SUM= SUM + 4.0/(1.0+X*X) ENDDO!$OMP CRITICAL PI = PI + SUM*STEP!$OMP END CRITICAL!$OMP END PARALLEL Supercomputing Center 42

43 critical: C #pragma omp parallel private (id, x, sum) { int id; id = omp_get_thread_num(); sum=0.0; for (i=id; i< num_steps; i=i+num_threads) { x = (i+0.5)*step; sum += 4.0/(1.0+x*x); } #pragma omp critical { pi += sum*step; } } Supercomputing Center 43

44 Clauses private(var1, var2, ) shared(var1, var2, ) default(shared private none) firstprivate(var1, var2, ) lastprivate(var1, var2, ) reduction(operator intrinsic:var1, var2, ) schedule(type [,chunk]) Supercomputing Center 44

45 데이터 유효범위 지정 Clause 명시적인 데이터 유효범위 지정 clause Private Shared Default Firstprivate Lastprivate Reduction Supercomputing Center 45

46 기본 데이터 유효범위: Fortran (1/2) SUBROUTINE CALLER(A,N) INTEGER N, A(N), I, J, M M=3!$OMP PARALLEL DO DO I=1, N DO J=1,5 CALL CALLEE(A(I),M,J) ENDDO ENDDO END SUBROUTINE CALLEE(X,Y,Z) COMMON /COM/C INTEGER X,Y,Z,C,II,CNT SAVE CNT CNT=CNT+1 DO II = 1, Z X=Y+C ENDDO END Supercomputing Center 46

47 기본 데이터 유효범위: Fortran (2/2) 변수 유효범위 설 명 A shared 병렬영역 밖에서 선언 N shared 병렬영역 밖에서 선언 I private 병렬루프 인덱스 J private 순차루프 인덱스 (Fortran) M shared 병렬영역 밖에서 선언 X shared 실제 인수 A가 shared Y shared 실제 인수 M이 shared Z private 실제 인수 J가 private C shared Common block으로 선언 II private 호출된 서브루틴의 지역 변수 CNT shared Save 속성을 가지는 지역 변수 Supercomputing Center 47

48 기본 데이터 유효범위: C (1/2) void caller(int a[], int n) { int i, j, m = 3; #pragma omp parallel for for (i=0; i<n; i++) { int k = m; for(j=1; j 5; j++) callee(&a[i], &k, j); } } extern int c; void callee(int *x, int *y, int z) { int ii; static int cnt; cnt++; for(ii=0; ii<z, ii++) *x = *y + c; } Supercomputing Center 48

49 기본 데이터 유효범위: C (2/2) 변수 유효범위 설 명 a shared 병렬영역 밖에서 선언 n shared 병렬영역 밖에서 선언 i private 병렬루프 인덱스 j shared 순차루프 인덱스 (in C) m shared 병렬영역 밖에서 선언 k private 병렬영역 안에서 선언된 자동 변수 x private Value parameter *x shared 실제 인수 a가 shared y private Value parameter *y private 실제 인수 k가 private z private Value parameter c shared Extern으로 선언 ii private 호출된 서브루틴의 지역 변수 cnt shared Static 선언된 지역변수 Supercomputing Center 49

50 clause : private private(var1, var2, ) 지정된 변수를 스레드끼리 공유하는 것 방지 private변수는 병렬영역 내에서만 정의됨 병렬영역 밖에서 초기화 할 수 없음 ( firstprivate) 병렬영역이 끝나면서 사라짐 ( lastprivate) private 선언을 고려해야 하는 변수 병렬영역 내에서 값을 할당 받는 변수!$OMP PARALLEL shared(a) private(myid, x) myid = OMP_GET_THREAD_NUM() x = work(myid) IF (x<1.0) THEN a(myid) = x ENDIF!$OMP END PARALLEL Supercomputing Center 50

51 clause : shared, default (1/2) shared(var1, var2, ) 지정된 변수를 모든 스레드가 공유하도록 함 default (private shared none) private 또는 shared로 선언되지 않은 변수의 기본적인 유효범위 지정 parallel do(for) 구문 : default 선언과 무관하게 루프 인덱스는 항상 private default(none): 모든 변수는 shared 또는 private으로 선언되어야 함 C : default(shared none) Supercomputing Center 51

52 clause : shared, default (2/2)!$OMP PARALLEL shared(a) private(myid, x) myid = OMP_GET_THREAD_NUM() x = work(myid) IF (x<1.0) THEN a(myid) = x ENDIF!$OMP END PARALLEL!$OMP PARALLEL default(private) shared(a) myid = OMP_GET_THREAD_NUM() x = work[myid] IF (x<1.0) THEN a[myid] = x ENDIF!$OMP END PARALLEL Supercomputing Center 52

53 clause : firstprivate (1/2) firstprivate(var1, var2, ) private 변수처럼 각 스레드에 개별적으로 변수 생성 각 스레드 마다 순차영역에서 가져온 값으로 초기화 Supercomputing Center 53

54 clause : firstprivate (2/2)!$OMP PARALLEL!$OMP DO PRIVATE (C) DO J=1,M DO I=2,N-1 C(I)=SQRT(1.0+B(I,J)**2) ENDDO DO I=1,N A(I,J)=SQRT(B(I,J)**2+C(I)**2) ENDDO ENDDO!$OMP END PARALLEL!$OMP PARALLEL!$OMP DO FIRSTPRIVATE (C) DO J=1,M DO I=2,N-1 C(I)=SQRT(1.0+B(I,J)**2) ENDDO DO I=1,N A(I,J)=SQRT(B(I,J)**2+C(I)**2) ENDDO ENDDO!$OMP END PARALLEL C(1), C(N)?? Supercomputing Center 54

55 clause : lastprivate (1/2) lastprivate(var1, var2, ) private 변수처럼 각 스레드에 개별적으로 변수 생성 순차실행에서 마지막계산에 해당되는 값 즉, 마지막 반복실행 의 값을 마스터 스레드에게 넘겨줌 Supercomputing Center 55

56 clause : lastprivate (2/2)!$OMP PARALLEL!$OMP DO FIRSTPRIVATE (C) DO J=1,M DO I=2,N-1 C(I)=SQRT(1.0+B(I,J)**2) ENDDO DO I=1,N A(I,J)=SQRT(B(I,J)**2+C(I)**2) ENDDO ENDDO IF(J.EQ. M+1) THEN DO I=1,N X(I) = C(I) ENDDO ENDIF!$OMP END PARALLEL!$OMP PARALLEL!$OMP DO FIRSTPRIVATE (C) &!$ LASTPRIVATE(J, C) DO J=1,M DO I=2,N-1 C(I)=SQRT(1.0+B(I,J)**2) ENDDO DO I=1,N A(I,J)=SQRT(B(I,J)**2+C(I)**2) ENDDO ENDDO IF(J.EQ. M+1) THEN DO I=1,N X(I) = C(I) ENDDO ENDIF!$OMP END PARALLEL Supercomputing Center 56

57 clause : reduction (1/4) reduction(operator intrinsic:var1, var2, ) reduction 변수는 shared 배열 가능(Fortran only): deferred shape, assumed shape array 사용 불가 C는 scalar 변수만 가능 각 스레드에 복제돼 연산에 따라 다른 값으로 초기화되고(표 참 조) 병렬 연산 수행 다중 스레드에서 병렬로 수행된 계산결과를 환산해 최종 결 과를 마스터 스레드로 내 놓음 Supercomputing Center 57

58 clause : reduction (2/4)!$OMP DO reduction(+:sum) DO i = 1, 100 sum = sum + x(i) ENDDO Thread 0 sum0 = 0 DO i = 1, 50 sum0 = sum0 + x(i) ENDDO Thread 1 sum1 = 0 DO i = 51, 100 sum1 = sum1 + x(i) ENDDO sum = sum0 + sum1 Supercomputing Center 58

59 clause : reduction (3/4) Reduction Operators : Fortran Operator Data Types 초기값 + * -.AND..OR..EQV..NEQV. MAX MIN IAND IOR IEOR integer, floating point (complex or real) integer, floating point (complex or real) integer, floating point (complex or real) logical logical logical logical integer, floating point (real only) integer, floating point (real only) integer integer integer TRUE..FALSE..TRUE..FALSE. 가능한 최소값 가능한 최대값 all bits on 0 0 Supercomputing Center 59

60 clause : reduction (4/4) Reduction Operators : C Operator Data Types 초기값 + * - & ^ && integer, floating point integer, floating point integer, floating point integer integer integer integer integer all bits on Supercomputing Center 60

61 reduction: Fortran!$OMP PARALLEL DO REDUCTION(+:SUM) PRIVATE(X) DO I = 1, NUM_STEPS X = (I-0.5)*STEP SUM = SUM + 4.0/(1.0+X*X) ENDDO!$OMP END PARALLEL DO PI = SUM*STEP Supercomputing Center 61

62 reduction: C #pragma omp parallel for reduction(+:sum) private(x) for (i=1;i<= num_steps; i++){ x = (i-0.5)*step; sum = sum + 4.0/(1.0+x*x); } pi = step * sum; Supercomputing Center 62

63 clause : schedule (1/8) schedule(type [,chunk_size]) 루프의 schedule : 루프실행의 분배문제 기본적인 schedule 정책 : 실행 회수 균등 분배 작업의 균등 분배를 위해 schedule clause 사용 type (default는 implementation depend) static dynamic guided runtime!$omp PARALLEL DO private(xkind) DO i = 1, N xkind = f(i) IF (xkind < 10) THEN CALL fast(x(i)) ELSE CALL slow(x(i)) ENDIF ENDDO Supercomputing Center 63

64 clause : schedule (2/8) schedule (static) 반복실행이 각 스레드에 균일하게 할당!$OMP DO shared(x) private(i) &!$ schedule(static) DO i = 1, 1000 x(i) = a ENDDO thread 0(i=1, 250) thread 1(i=251,500) thread 0 thread 0 thread 2(i=501,750) thread 3(i=751,1000) Supercomputing Center 64

65 clause : schedule (3/8) schedule(static, chunk_size) 총 반복실행 회수를 chunk_size로 나누어 chunk 생성 chunk들을 스레드에 라운드-로빈 방식으로 정적 할당!$OMP DO shared(x) private(i) &!$ schedule(static, 100) DO i = 1, 1200 work ENDDO thread 0 (1,100),(401,500),(801,900) thread 0 thread 1 (101,200),(501,600),(901,1000) thread 2 (201,300),(601,700),(1001,1100) thread 3 (301,400),(701,800),(1101,1200) thread 0 Supercomputing Center 65

66 clause : schedule (4/8) Supercomputing Center 66

67 clause : schedule (5/8) schedule (dynamic, chunk_size) 총 반복실행 회수를 chunk_size로 나누어 chunk 생성 chunk들을 스레드에 동적할당 작업이 먼저 끝나는 스레드에 다음 chunk 할당 chunk_size가 없으면 디폴트 chunk_size = 1!$OMP DO schedule(dynamic, 1000) DO i = 1, work ENDDO Supercomputing Center 67

68 clause : schedule (6/8) schedule (guided, chunk_size) dynamic scheduling chunk 크기가 변한다.(N 0 :반복회수, P:스레드 개수) N n = MAX(N n-1 -size(chunk n-1 ),P*chunk_size) (n 1) size(chunk n ) = CEILING(N n /P) 각 스레드가 DO구문에 도착하는 순서가 다를 때 유용!$OMP DO schedule(guided, 55) DO i = 1, work ENDDO Supercomputing Center 68

69 clause : schedule (7/8) Supercomputing Center 69

70 clause : schedule (8/8) schedule(runtime) 프로그램 실행 중에 환경변수 OMP_SCHEDULE 값을 참조 재 컴파일 없이 다양한 스케줄링 방식 시도 가능 export OMP_SCHEDULE= static,1000 export OMP_SCHEDULE= dynamic Supercomputing Center 70

71 schedule : Fortran!$OMP PARALLEL!$OMP DO SCHEDULE(DYNAMIC,10) DO I = 1, 100 PRINT*, 'I AM :', OMP_GET_THREAD_NUM(), 'I:', I ENDDO!$OMP END PARALLEL Supercomputing Center 71

72 schedule : C #pragma omp parallel { #pragma omp for schedule(dynamic,10) for(i=0; i<100; i++) printf( I am %d, i = %d \n, omp_get_thread_num(), i); } Supercomputing Center 72

73 clause : if if (logical expression) expression이 참이면 병렬실행 거짓이면 순차실행 예) 만약 실행회수 800이상에서 병렬화 이득을 볼 수 있다면 Fortran!$OMP PARALLEL DO &!$ if(n.ge. 800) DO i = 1, n z(i) = a*x(i) + y ENDDO!$OMP END PARALLEL DO C #pragma omp parallel for \ if (800 <= n) { for(i=1, i<=n, i++) z[i] = a*x[i] + y; } Supercomputing Center 73

74 clause : ordered ordered 루프 내에 ordered 지시어가 나타날 것임을 지적 ordered 지시어는 ordered clause와 같이 사용 병렬구문 안의 내용을 인덱스 순서대로 실행하게 함 동기화 지시어 ordered 참조!$OMP PARALLEL private(myid) myid = omp_get_thread_num()!$omp DO private(i) ordered DO i = 1, 8!$OMP ORDERED PRINT*, T:, myid, i=,i!$omp END ORDERED ENDDO!$OMP END PARALLEL Supercomputing Center 74

75 clause : copyin Fortran C copyin (/cb1/ [,/cb2/ ]) copyin (var1, var2, ]) 마스터 스레드의 threadprivate 데이터에 다른 스레드들이 접근 가능하도록 함 스레드들의 threadprivate 변수들을 마스터 스레드의 threadprivate 데이터로 초기화 하는데 사용 Supercomputing Center 75

76 copyin : Fortran & C INTEGER tid, x COMMON /mine/ x!$omp THREADPRIVATE(/mine/) x = 33 CALL omp_set_num_threads(4)!$omp PARALLEL private(tid) & copyin(/mine/) tid = omp_get_thread_num() PRINT*, T:,tid, x=,x!$omp END PARALLEL int x; #pragma omp threadprivate(x) main(){ int tid; x = 33; omp_set_num_threads(4); #pragma omp parallel \ private(tid) copyin(x) { tid = omp_get_thread_num(); printf( T:%d,x=%d\n,tid,x); } } Supercomputing Center 76

77 지시어와 clauses : 요약 (1/2) 지 시 어 Clause parallel do/for sections single parallel do/for parallel sections if private shared default firstprivate lastprivate reduction copyin schedule ordered nowait Supercomputing Center 77

78 지시어와 clauses : 요약 (2/2) 다음 지시어들은 clause를 사용하지 않는다. master critical barrier atomic ordered threadprivate flush Supercomputing Center 78

79 제 III 장 환경변수와 실행시간 라이브러리 환경변수와 실행시간 라이브러리 루틴의 사용법 에 대해 알아본다.

80 환경변수 (1/3) OMP_NUM_THREADS OMP_SCHEDULE OMP_DYNAMIC OMP_NESTED OpenMP 프로그램 실행 제어 프로그램 실행 시작 전에 한번 참조됨 프로그램 내에서 실행시간 라이브러리에 의해 값 수정 가능 변수 이름은 반드시 대문자 변수 값은 소문자 사용 가능 C : 논리값 1(TRUE), 0(FALSE) Supercomputing Center 80

81 환경변수 (2/3) OMP_NUM_THREADS 병렬영역에서 사용 가능한 최대 스레드 개수 지정 OMP_SCHEDULE schedule type이 runtime으로 지정된 루프들에게 scheduling 방식 지정 OMP_DYNAMIC 스레드 개수의 동적할당 여부 결정 TRUE : 병렬영역에서 실제로 사용되는 스레드 수를 최대 개수 범위 내에서 동적할당 OMP_NESTED nested 병렬성 지원여부 결정 OpenMP 표준은 지원, 그러나 대부분 업체는 지원하지 않음 디폴트 : FALSE Supercomputing Center 81

82 환경변수 (3/3) 사용 예 (ksh) 환경변수 사 용 OMP_SCHEDULE OMP_NUM_THREADS OMP_DYNAMIC OMP_NESTED export OMP_SCHEDULE= guided, 4 export OMP_SCHEDULE= dynamic export OMP_NUM_THREADS=32 export OMP_DYNAMIC=TRUE export OMP_NESTED=FALSE Supercomputing Center 82

83 실행시간 라이브러리 루틴 실행환경 루틴 omp_set_num_threads() omp_get_num_threads() omp_get_thread_num() omp_get_max_threads() omp_set_nested() omp_set_dynamic() omp_get_nested() omp_get_dynamic() omp_in_parallel() omp_get_num_procs() 잠금(lock) 루틴 Supercomputing Center 83

84 omp_set_num_threads Fortran : CALL omp_set_num_threads(integer) C : void omp_set_num_threads(int) 이어지는 병렬영역에서 사용할 스레드 개수 설정 환경변수(OMP_NUM_THREADS) 설정에 우선함 다음 호출이 있을 때까지 스레드 개수는 고정 스레드 할당이 동적이면 사용 가능한 최대 스레드 개수를 나타냄 병렬영역 안에서 호출할 수 없음 Supercomputing Center 84

85 omp_get_num_threads Fortran : INTEGER omp_get_num_threads() C : int omp_get_num_threads(void) 병렬영역 안에서 호출되어 생성된 스레드의 개수를 리턴 순차영역에서 호출하면 1을 리턴 Fortran INTEGER omp_get_num_threads nthreads = 16 CALL & omp_set_num_threads(nthreads)!$omp PARALLEL PRINT *, # of threads =, omp_get_num_threads()!$omp END PARALLEL & C #include <omp.h> num_threads = 16 omp_set_num_threads(num_threads); #pragma omp parallel { printf( # of threads = %d\n, omp_get_num_threads()); } Supercomputing Center 85

86 omp_get_thread_num Fortran : INTEGER omp_get_thread_num() C : int omp_get_thread_num(void) 병렬영역 안에서 생성된 스레드들의 ID를 리턴 0 <= 스레드 ID <= omp_get_num_threads() - 1 순차영역에서 호출하면 0(마스터 스레드)을 리턴 Fortran INTEGER omp_get_thread_num #include <omp.h> C!$OMP PARALLEL PRINT *, thread ID =, & omp_get_thread_num()!$omp END PARALLEL #pragma omp parallel { printf( thread ID = %d\n, omp_get_thread_num()); } Supercomputing Center 86

87 omp_in_parallel Fortran : LOGICAL omp_in_parallel() C : int omp_in_parallel(void) 호출된 지점이 순차영역인지 병렬영역인지 확인 병렬영역이면.TRUE.(1) 순차영역이면.FALSE.(0) 리턴 Fortran LOGICAL omp_in_parallel C #include <omp.h> PRINT *, parallel region?, & omp_in_parallel()!$omp PARALLEL PRINT *, parallel region?, & omp_in_parallel()!$omp END PARALLEL printf( parallel region? = %d\n, omp_in_parallel()); #pragma omp parallel { } printf( parallel region? = %d\n, omp_in_parallel()); Supercomputing Center 87

88 profiling tools prof, gprof(gnu Profiler) PAPI Dynaprof GuideView (OpenMP) Vampir (MPI) TAU (OpenMP, MPI, Hybrid) Vprof Etc. Supercomputing Center 88

89 profiling steps with gprof GNU Profiler (gprof) compile $ifort o [myprog] [myprog.f] -pg execute $./[myprog] data file print $gprof [option]./[myprog] gmon.out > myprog_prof.txt Supercomputing Center 89

90 gprof의 주요 옵션 GNU Profiler (gprof) 출력 형식 관련 옵션 -A 소스 코드에 분석 결과를 삽입하여 출력 -C[funcName] -J[funcName] -p[funcname] -q[funcname] 지정된 심볼만 함수 분석에 사용 지정된 심볼만 소스 코드에 분석 결과를 삽입 평면 프로파일 생성, [funcname] 지정시 지정된 심볼만 생성 호출 그래프 프로파일 생성, [funcname] 지정시 지정된 심볼만 생성 분석 옵션 -a static으로 정의된 함수를 분석하지 않음 -c 프로파일링 옵션으로 컴파일 되지 않은 함수에 대하여 짐작하여 호출관계를 추정하 여 분석함 -l 줄 단위 프로파일링 -s 프로파일링 데이터 파일들을 읽어서 gmon.sum에 합산하여 기록 Supercomputing Center 90

91 GNU Profiler (gprof) 프로파일링 데이터 분석 평면 프로파일 (Flat Profile) 각 함수의 총 수행 시간, 평균 수행 시간 등을 분석 함수 간 호출 정보는 없음 -z, -c 옵션을 통해 호출되지 않은 함수의 정보 분 석 호출 그래프 프로파일 (Call Graph) 각 함수의 호출 관계를 통한 수행 시간 분석 평면 프로파일 보다 자세한 분석 Supercomputing Center 91

92 프로파일링 출력 분석 : GNU Profiler (gprof) 평면 프로파일 (Flat Profile) % time cumulative seconds self seconds calls self ms/call total ms/call name 프로그램 내에서 함수가 수행된 전체 시갂의 백분율 프로그램 내에서 함수와 테이블의 위 함수들이 수행된 시갂의 합 프로그램 내에서 함수가 수행된 전체 시갂 프로그램 내에서 함수가 호출된 횟수 함수의 호출 당 평균 수행 시갂, 다른 함수 호출에 의해 사용된 시갂 제외 ( = self seconds / calls ) 함수의 호출 당 평균 수행 시갂, 다른 함수 호출에 의해 사용된 시갂 포함 함수의 이름 Supercomputing Center 92

93 프로파일링 출력 분석 : GNU Profiler (gprof) 호출 그래프 프로파일 (Call Graph) index 각 함수마다 유일하게 지정되는 번호 % time 함수 수행 시갂 중 차지하는 비율 self children called name 대상 함수의 순수 수행 시갂 다른 함수를 호출하는데 사용된 시갂 총 함수의 호출 횟수와 분석 함수에 의한 호출 횟수 표시 함수의 이름과 index Supercomputing Center 93

Outline PLSI 시스템접속병렬처리병렬프로그래밍개요 OpenMP를이용한병렬화 MPI를이용한병렬화순차코드의병렬화

Outline PLSI 시스템접속병렬처리병렬프로그래밍개요 OpenMP를이용한병렬화 MPI를이용한병렬화순차코드의병렬화 병렬프로그래밍 정진우 Outline PLSI 시스템접속병렬처리병렬프로그래밍개요 OpenMP를이용한병렬화 MPI를이용한병렬화순차코드의병렬화 PLSI 시스템개요 PLSI 사업과 PLSI 자원 PLSI 사업 (PLSI Project) 국내슈퍼컴퓨터자원을국가적차원의체계적인연동과관리를통해효율적으로사용할수있도록지원하는사업 PLSI is a national project

More information

Microsoft Word - 3부A windows 환경 IVF + visual studio.doc

Microsoft Word - 3부A windows 환경 IVF + visual studio.doc Visual Studio 2005 + Intel Visual Fortran 9.1 install Intel Visual Fortran 9.1 intel Visual Fortran Compiler 9.1 만설치해서 DOS 모드에서실행할수있지만, Visual Studio 2005 의 IDE 를사용하기위해서는 Visual Studio 2005 를먼저설치후 Integration

More information

K&R2 Reference Manual 번역본

K&R2 Reference Manual 번역본 typewriter structunion struct union if-else if if else if if else if if if if else else ; auto register static extern typedef void char short int long float double signed unsigned const volatile { } struct

More information

강의10

강의10 Computer Programming gdb and awk 12 th Lecture 김현철컴퓨터공학부서울대학교 순서 C Compiler and Linker 보충 Static vs Shared Libraries ( 계속 ) gdb awk Q&A Shared vs Static Libraries ( 계속 ) Advantage of Using Libraries Reduced

More information

6주차.key

6주차.key 6, Process concept A program in execution Program code PCB (process control block) Program counter, registers, etc. Stack Heap Data section => global variable Process in memory Process state New Running

More information

Parallel Programming 박필성 IT 대학컴퓨터학과

Parallel Programming 박필성 IT 대학컴퓨터학과 Parallel Programming 박필성 IT 대학컴퓨터학과 목차 Why Parallel? Parallel Computers Parallel Processing Parallel Programming Models Parallel Programming OpenMP Standard MPI Standard Related Topics & Questions Why

More information

4. #include <stdio.h> #include <stdlib.h> int main() { functiona(); } void functiona() { printf("hihi\n"); } warning: conflicting types for functiona

4. #include <stdio.h> #include <stdlib.h> int main() { functiona(); } void functiona() { printf(hihi\n); } warning: conflicting types for functiona 이름 : 학번 : A. True or False: 각각항목마다 True 인지 False 인지적으세요. 1. (Python:) randint 함수를사용하려면, random 모듈을 import 해야한다. 2. (Python:) '' (single quote) 는한글자를표현할때, (double quote) 는문자열을표현할때사용한다. B. 다음에러를수정하는방법을적으세요.

More information

C# Programming Guide - Types

C# Programming Guide - Types C# Programming Guide - Types 최도경 lifeisforu@wemade.com 이문서는 MSDN 의 Types 를요약하고보충한것입니다. http://msdn.microsoft.com/enus/library/ms173104(v=vs.100).aspx Types, Variables, and Values C# 은 type 에민감한언어이다. 모든

More information

example code are examined in this stage The low pressure pressurizer reactor trip module of the Plant Protection System was programmed as subject for

example code are examined in this stage The low pressure pressurizer reactor trip module of the Plant Protection System was programmed as subject for 2003 Development of the Software Generation Method using Model Driven Software Engineering Tool,,,,, Hoon-Seon Chang, Jae-Cheon Jung, Jae-Hack Kim Hee-Hwan Han, Do-Yeon Kim, Young-Woo Chang Wang Sik, Moon

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 @ Lesson 2... ( ). ( ). @ vs. logic data method variable behavior attribute method field Flow (Type), ( ) member @ () : C program Method A ( ) Method B ( ) Method C () program : Java, C++, C# data @ Program

More information

Microsoft PowerPoint - chap10-함수의활용.pptx

Microsoft PowerPoint - chap10-함수의활용.pptx #include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 중 값에 의한 전달 방법과

More information

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx #include int main(void) { int num; printf( Please enter an integer "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 을 작성하면서 C 프로그램의

More information

슬라이드 1

슬라이드 1 Pairwise Tool & Pairwise Test NuSRS 200511305 김성규 200511306 김성훈 200614164 김효석 200611124 유성배 200518036 곡진화 2 PICT Pairwise Tool - PICT Microsoft 의 Command-line 기반의 Free Software www.pairwise.org 에서다운로드후설치

More information

프로그램을 학교 등지에서 조금이라도 배운 사람들을 위한 프로그래밍 노트 입니다. 저 역시 그 사람들 중 하나 입니다. 중고등학교 시절 학교 도서관, 새로 생긴 시립 도서관 등을 다니며 책을 보 고 정리하며 어느정도 독학으르 공부하긴 했지만, 자주 안하다 보면 금방 잊어

프로그램을 학교 등지에서 조금이라도 배운 사람들을 위한 프로그래밍 노트 입니다. 저 역시 그 사람들 중 하나 입니다. 중고등학교 시절 학교 도서관, 새로 생긴 시립 도서관 등을 다니며 책을 보 고 정리하며 어느정도 독학으르 공부하긴 했지만, 자주 안하다 보면 금방 잊어 개나리 연구소 C 언어 노트 (tyback.egloos.com) 프로그램을 학교 등지에서 조금이라도 배운 사람들을 위한 프로그래밍 노트 입니다. 저 역시 그 사람들 중 하나 입니다. 중고등학교 시절 학교 도서관, 새로 생긴 시립 도서관 등을 다니며 책을 보 고 정리하며 어느정도 독학으르 공부하긴 했지만, 자주 안하다 보면 금방 잊어먹고 하더라구요. 그래서,

More information

김기남_ATDC2016_160620_[키노트].key

김기남_ATDC2016_160620_[키노트].key metatron Enterprise Big Data SKT Metatron/Big Data Big Data Big Data... metatron Ready to Enterprise Big Data Big Data Big Data Big Data?? Data Raw. CRM SCM MES TCO Data & Store & Processing Computational

More information

Oracle9i Real Application Clusters

Oracle9i Real Application Clusters Senior Sales Consultant Oracle Corporation Oracle9i Real Application Clusters Agenda? ? (interconnect) (clusterware) Oracle9i Real Application Clusters computing is a breakthrough technology. The ability

More information

C++-¿Ïº®Çؼ³10Àå

C++-¿Ïº®Çؼ³10Àå C C++. (preprocessor directives), C C++ C/C++... C++, C. C++ C. C C++. C,, C++, C++., C++.,.. #define #elif #else #error #if #itdef #ifndef #include #line #pragma #undef #.,.,. #include #include

More information

untitled

untitled int i = 10; char c = 69; float f = 12.3; int i = 10; char c = 69; float f = 12.3; printf("i : %u\n", &i); // i printf("c : %u\n", &c); // c printf("f : %u\n", &f); // f return 0; i : 1245024 c : 1245015

More information

02 C h a p t e r Java

02 C h a p t e r Java 02 C h a p t e r Java Bioinformatics in J a va,, 2 1,,,, C++, Python, (Java),,, (http://wwwbiojavaorg),, 13, 3D GUI,,, (Java programming language) (Sun Microsystems) 1995 1990 (green project) TV 22 CHAPTER

More information

10주차.key

10주차.key 10, Process synchronization (concurrently) ( ) => critical section ( ) / =>, A, B / Race condition int counter; Process A { counter++; } Process B { counter ;.. } counter++ register1 = counter register1

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 System Software Experiment 1 Lecture 5 - Array Spring 2019 Hwansoo Han (hhan@skku.edu) Advanced Research on Compilers and Systems, ARCS LAB Sungkyunkwan University http://arcs.skku.edu/ 1 배열 (Array) 동일한타입의데이터가여러개저장되어있는저장장소

More information

BSC Discussion 1

BSC Discussion 1 Copyright 2006 by Human Consulting Group INC. All Rights Reserved. No Part of This Publication May Be Reproduced, Stored in a Retrieval System, or Transmitted in Any Form or by Any Means Electronic, Mechanical,

More information

Microsoft PowerPoint - chap03-변수와데이터형.pptx

Microsoft PowerPoint - chap03-변수와데이터형.pptx #include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num %d\n", num); return 0; } 1 학습목표 의 개념에 대해 알아본다.

More information

ecorp-프로젝트제안서작성실무(양식3)

ecorp-프로젝트제안서작성실무(양식3) (BSC: Balanced ScoreCard) ( ) (Value Chain) (Firm Infrastructure) (Support Activities) (Human Resource Management) (Technology Development) (Primary Activities) (Procurement) (Inbound (Outbound (Marketing

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Reasons for Poor Performance Programs 60% Design 20% System 2.5% Database 17.5% Source: ORACLE Performance Tuning 1 SMS TOOL DBA Monitoring TOOL Administration TOOL Performance Insight Backup SQL TUNING

More information

목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate

목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate ALTIBASE HDB 6.1.1.5.6 Patch Notes 목차 BUG-39240 offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG-41443 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate 한뒤, hash partition

More information

Microsoft PowerPoint - chap12-고급기능.pptx

Microsoft PowerPoint - chap12-고급기능.pptx #include int main(void) int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; 1 학습목표 가 제공하는 매크로 상수와 매크로

More information

C 프로그래밍 언어 입문 C 프로그래밍 언어 입문 김명호저 숭실대학교 출판국 머리말..... C, C++, Java, Fortran, Python, Ruby,.. C. C 1972. 40 C.. C. 1999 C99. C99. C. C. C., kmh ssu.ac.kr.. ,. 2013 12 Contents 1장 프로그래밍 시작 1.1 C 10 1.2 12

More information

슬라이드 1

슬라이드 1 -Part3- 제 4 장동적메모리할당과가변인 자 학습목차 4.1 동적메모리할당 4.1 동적메모리할당 4.1 동적메모리할당 배울내용 1 프로세스의메모리공간 2 동적메모리할당의필요성 4.1 동적메모리할당 (1/6) 프로세스의메모리구조 코드영역 : 프로그램실행코드, 함수들이저장되는영역 스택영역 : 매개변수, 지역변수, 중괄호 ( 블록 ) 내부에정의된변수들이저장되는영역

More information

해양모델링 2장5~18 2012.7.27 12:26 AM 페이지6 6 오픈소스 소프트웨어를 이용한 해양 모델링 2.1.2 물리적 해석 식 (2.1)의 좌변은 어떤 물질의 단위 시간당 변화율을 나타내며, 우변은 그 양을 나타낸 다. k 5 0이면 C는 처음 값 그대로 농

해양모델링 2장5~18 2012.7.27 12:26 AM 페이지6 6 오픈소스 소프트웨어를 이용한 해양 모델링 2.1.2 물리적 해석 식 (2.1)의 좌변은 어떤 물질의 단위 시간당 변화율을 나타내며, 우변은 그 양을 나타낸 다. k 5 0이면 C는 처음 값 그대로 농 해양모델링 2장5~18 2012.7.27 12:26 AM 페이지5 02 모델의 시작 요약 이 장에서는 감쇠 문제를 이용하여 여러분을 수치 모델링 세계로 인도한다. 유한 차분법 의 양해법과 음해법 그리고 일관성, 정확도, 안정도, 효율성 등을 설명한다. 첫 번째 수치 모델의 작성과 결과를 그림으로 보기 위해 FORTRAN 프로그램과 SciLab 스크립트가 사용된다.

More information

Windows Embedded Compact 2013 [그림 1]은 Windows CE 로 알려진 Microsoft의 Windows Embedded Compact OS의 history를 보여주고 있다. [표 1] 은 각 Windows CE 버전들의 주요 특징들을 담고

Windows Embedded Compact 2013 [그림 1]은 Windows CE 로 알려진 Microsoft의 Windows Embedded Compact OS의 history를 보여주고 있다. [표 1] 은 각 Windows CE 버전들의 주요 특징들을 담고 OT S / SOFTWARE 임베디드 시스템에 최적화된 Windows Embedded Compact 2013 MDS테크놀로지 / ES사업부 SE팀 김재형 부장 / jaei@mdstec.com 또 다른 산업혁명이 도래한 시점에 아직도 자신을 떳떳이 드러내지 못하고 있는 Windows Embedded Compact를 오랫동안 지켜보면서, 필자는 여기서 그와 관련된

More information

15_3oracle

15_3oracle Principal Consultant Corporate Management Team ( Oracle HRMS ) Agenda 1. Oracle Overview 2. HR Transformation 3. Oracle HRMS Initiatives 4. Oracle HRMS Model 5. Oracle HRMS System 6. Business Benefit 7.

More information

ePapyrus PDF Document

ePapyrus PDF Document 프로그래밍 콘테스트 챌린징 for GCJ, TopCoder, ACM/ICPC, KOI/IOI 지은이 Takuya Akiba, Yoichi Iwata, Mastoshi Kitagawa 옮긴이 박건태, 김승엽 1판 1쇄 발행일 201 1년 10월 24일 펴낸이 장미경 펴낸곳 로드북 편집 임성춘 디자인 이호용(표지), 박진희(본문) 주소 서울시 관악구 신림동 1451-15

More information

MS-SQL SERVER 대비 기능

MS-SQL SERVER 대비 기능 Business! ORACLE MS - SQL ORACLE MS - SQL Clustering A-Z A-F G-L M-R S-Z T-Z Microsoft EE : Works for benchmarks only CREATE VIEW Customers AS SELECT * FROM Server1.TableOwner.Customers_33 UNION ALL SELECT

More information

Microsoft PowerPoint - ch07 - 포인터 pm0415

Microsoft PowerPoint - ch07 - 포인터 pm0415 2015-1 프로그래밍언어 7. 포인터 (Pointer), 동적메모리할당 2015 년 4 월 4 일 교수김영탁 영남대학교공과대학정보통신공학과 (Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr) Outline 포인터 (pointer) 란? 간접참조연산자

More information

1.장인석-ITIL 소개.ppt

1.장인석-ITIL 소개.ppt HP 2005 6 IT ITIL Framework IT IT Framework Synchronized Business and IT Business Information technology Delivers: Simplicity, Agility, Value IT Complexity Cost Scale IT Technology IT Infrastructure IT

More information

untitled

untitled Embedded System Lab. II Embedded System Lab. II 2 RTOS Hard Real-Time vs Soft Real-Time RTOS Real-Time, Real-Time RTOS General purpose system OS H/W RTOS H/W task Hard Real-Time Real-Time System, Hard

More information

Something that can be seen, touched or otherwise sensed

Something that can be seen, touched or otherwise sensed Something that can be seen, touched or otherwise sensed Things about an object Weight Height Material Things an object does Pen writes Book stores words Water have Fresh water Rivers Oceans have

More information

<C6F7C6AEB6F5B1B3C0E72E687770>

<C6F7C6AEB6F5B1B3C0E72E687770> 1-1. 포트란 언어의 역사 1 1-2. 포트란 언어의 실행 단계 1 1-3. 문제해결의 순서 2 1-4. Overview of Fortran 2 1-5. Use of Columns in Fortran 3 1-6. INTEGER, REAL, and CHARACTER Data Types 4 1-7. Arithmetic Expressions 4 1-8. 포트란에서의

More information

본문01

본문01 Ⅱ 논술 지도의 방법과 실제 2. 읽기에서 논술까지 의 개발 배경 읽기에서 논술까지 자료집 개발의 본래 목적은 초 중 고교 학교 평가에서 서술형 평가 비중이 2005 학년도 30%, 2006학년도 40%, 2007학년도 50%로 확대 되고, 2008학년도부터 대학 입시에서 논술 비중이 커지면서 논술 교육은 학교가 책임진다. 는 풍토 조성으로 공교육의 신뢰성과

More information

금오공대 컴퓨터공학전공 강의자료

금오공대 컴퓨터공학전공 강의자료 C 프로그래밍프로젝트 Chap 14. 포인터와함수에대한이해 2013.10.09. 오병우 컴퓨터공학과 14-1 함수의인자로배열전달 기본적인인자의전달방식 값의복사에의한전달 val 10 a 10 11 Department of Computer Engineering 2 14-1 함수의인자로배열전달 배열의함수인자전달방식 배열이름 ( 배열주소, 포인터 ) 에의한전달 #include

More information

Microsoft PowerPoint - PL_03-04.pptx

Microsoft PowerPoint - PL_03-04.pptx Copyright, 2011 H. Y. Kwak, Jeju National University. Kwak, Ho-Young http://cybertec.cheju.ac.kr Contents 1 프로그래밍 언어 소개 2 언어의 변천 3 프로그래밍 언어 설계 4 프로그래밍 언어의 구문과 구현 기법 5 6 7 컴파일러 개요 변수, 바인딩, 식 및 제어문 자료형 8

More information

Microsoft PowerPoint - chap11-포인터의활용.pptx

Microsoft PowerPoint - chap11-포인터의활용.pptx #include int main(void) int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; 1 학습목표 포인터를 사용하는 다양한 방법에

More information

04-다시_고속철도61~80p

04-다시_고속철도61~80p Approach for Value Improvement to Increase High-speed Railway Speed An effective way to develop a highly competitive system is to create a new market place that can create new values. Creating tools and

More information

Figure 5.01

Figure 5.01 Chapter 4: Threads Yoon-Joong Kim Hanbat National University, Computer Engineering Department Chapter 4: Multithreaded Programming Overview Multithreading Models Thread Libraries Threading Issues Operating

More information

PJTROHMPCJPS.hwp

PJTROHMPCJPS.hwp 제 출 문 농림수산식품부장관 귀하 본 보고서를 트위스트 휠 방식 폐비닐 수거기 개발 과제의 최종보고서로 제출 합니다. 2008년 4월 24일 주관연구기관명: 경 북 대 학 교 총괄연구책임자: 김 태 욱 연 구 원: 조 창 래 연 구 원: 배 석 경 연 구 원: 김 승 현 연 구 원: 신 동 호 연 구 원: 유 기 형 위탁연구기관명: 삼 생 공 업 위탁연구책임자:

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 @ Lesson 4 (Object) (Class) (Instance) (Method) (Constructor) Memory 1 UML 1 @ & 1 (Real World) (Software World) @ &.. () () @ & 2 (Real World) (Software World) OOA/ Modeling Abstraction Instantiation

More information

Microsoft Word - ExecutionStack

Microsoft Word - ExecutionStack Lecture 15: LM code from high level language /* Simple Program */ external int get_int(); external void put_int(); int sum; clear_sum() { sum=0; int step=2; main() { register int i; static int count; clear_sum();

More information

solution map_....

solution map_.... SOLUTION BROCHURE RELIABLE STORAGE SOLUTIONS ETERNUS FOR RELIABILITY AND AVAILABILITY PROTECT YOUR DATA AND SUPPORT BUSINESS FLEXIBILITY WITH FUJITSU STORAGE SOLUTIONS kr.fujitsu.com INDEX 1. Storage System

More information

03장.스택.key

03장.스택.key ---------------- DATA STRUCTURES USING C ---------------- 03CHAPTER 1 ? (stack): (LIFO:Last-In First-Out) 2 : top : ( index -1 ),,, 3 : ( ) ( ) -> ->. ->.... 4 Stack ADT : (LIFO) : init():. is_empty():

More information

歯엑셀모델링

歯엑셀모델링 I II II III III I VBA Understanding Excel VBA - 'VB & VBA In a Nutshell' by Paul Lomax, October,1998 To enter code: Tools/Macro/visual basic editor At editor: Insert/Module Type code, then compile by:

More information

13주-14주proc.PDF

13주-14주proc.PDF 12 : Pro*C/C++ 1 2 Embeded SQL 3 PRO *C 31 C/C++ PRO *C NOT! NOT AND && AND OR OR EQUAL == = SQL,,, Embeded SQL SQL 32 Pro*C C SQL Pro*C C, C Pro*C, C C 321, C char : char[n] : n int, short, long : float

More information

untitled

untitled if( ) ; if( sales > 2000 ) bonus = 200; if( score >= 60 ) printf(".\n"); if( height >= 130 && age >= 10 ) printf(".\n"); if ( temperature < 0 ) printf(".\n"); // printf(" %.\n \n", temperature); // if(

More information

Microsoft PowerPoint - 27.pptx

Microsoft PowerPoint - 27.pptx 이산수학 () n-항관계 (n-ary Relations) 2011년봄학기 강원대학교컴퓨터과학전공문양세 n-ary Relations (n-항관계 ) An n-ary relation R on sets A 1,,A n, written R:A 1,,A n, is a subset R A 1 A n. (A 1,,A n 에대한 n- 항관계 R 은 A 1 A n 의부분집합이다.)

More information

06_ÀÌÀçÈÆ¿Ü0926

06_ÀÌÀçÈÆ¿Ü0926 182 183 184 / 1) IT 2) 3) IT Video Cassette Recorder VCR Personal Video Recorder PVR VCR 4) 185 5) 6) 7) Cloud Computing 8) 186 VCR P P Torrent 9) avi wmv 10) VCR 187 VCR 11) 12) VCR 13) 14) 188 VTR %

More information

4 CD Construct Special Model VI 2 nd Order Model VI 2 Note: Hands-on 1, 2 RC 1 RLC mass-spring-damper 2 2 ζ ω n (rad/sec) 2 ( ζ < 1), 1 (ζ = 1), ( ) 1

4 CD Construct Special Model VI 2 nd Order Model VI 2 Note: Hands-on 1, 2 RC 1 RLC mass-spring-damper 2 2 ζ ω n (rad/sec) 2 ( ζ < 1), 1 (ζ = 1), ( ) 1 : LabVIEW Control Design, Simulation, & System Identification LabVIEW Control Design Toolkit, Simulation Module, System Identification Toolkit 2 (RLC Spring-Mass-Damper) Control Design toolkit LabVIEW

More information

IASB( ) IASB (IASB ),, ( ) [] IASB( ), IASB 1

IASB( ) IASB (IASB ),, ( ) [] IASB( ), IASB 1 IASB( ) IASB (IASB ),, 2007 8 31 ( ) [] IASB( ), IASB 1 ,,,,,,,, 2 IASB IFRS(International Financial Reporting Standards) IASB, IASB IASC(International Accounting Standards Committee) IAS(International

More information

Microsoft PowerPoint - chap04-연산자.pptx

Microsoft PowerPoint - chap04-연산자.pptx int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); } 1 학습목표 수식의 개념과 연산자, 피연산자에 대해서 알아본다. C의 를 알아본다. 연산자의 우선 순위와 결합 방향에

More information

106 107, ( ),, ( ), 3, int kor[5]; int eng[5]; int Microsoft Windows 4 (ANSI C2 ) int kor[5] 20 # define #define SIZE 20 int a[10]; char c[10]; float

106 107, ( ),, ( ), 3, int kor[5]; int eng[5]; int Microsoft Windows 4 (ANSI C2 ) int kor[5] 20 # define #define SIZE 20 int a[10]; char c[10]; float Part 2 31 32 33 106 107, ( ),, ( ), 3, int kor[5]; int eng[5]; int Microsoft Windows 4 (ANSI C2 ) int kor[5] 20 # define #define SIZE 20 int a[10]; char c[10]; float f[size]; /* 10 /* c 10 /* f 20 3 1

More information

<4D F736F F F696E74202D FC0CFB9DD5FBAB4B7C4C7C1B7CEB1D7B7A1B9D62E >

<4D F736F F F696E74202D FC0CFB9DD5FBAB4B7C4C7C1B7CEB1D7B7A1B9D62E > 컴퓨팅브릿지일반병렬프로그래밍 김정한 목표 병렬프로그래밍을하기위해필요한사전지식을 전달하고, OpenMP와 MPI의개념및사용법을소개하여간단한병렬프로그램을직접작성할수있게한다. INDEX 1. 병렬프로그래밍개요 2. OpenMP 사용법 3. MPI 사용법 01. 병렬프로그래밍개요 병렬프로그래밍과관련된개념을정리하고병렬프로그래밍모델, 성능측정, 그리고병렬프로그램의작성과정에대해알아본다.

More information

- 2 -

- 2 - - 1 - - 2 - - 3 - - 4 - - 5 - - 6 - - 7 - - 8 - - 9 - - 10 - - 11 - - 12 - - 13 - - 14 - - 15 - - 16 - - 17 - - 18 - - 19 - - 20 - - 21 - - 22 - - 23 - - 24 - - 25 - - 26 - - 27 - - 28 - - 29 - - 30 -

More information

Microsoft PowerPoint - chap05-제어문.pptx

Microsoft PowerPoint - chap05-제어문.pptx int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); 1 학습목표 제어문인,, 분기문에 대해 알아본다. 인 if와 switch의 사용 방법과 사용시 주의사항에 대해 알아본다.

More information

DE1-SoC Board

DE1-SoC Board 실습 1 개발환경 DE1-SoC Board Design Tools - Installation Download & Install Quartus Prime Lite Edition http://www.altera.com/ Quartus Prime (includes Nios II EDS) Nios II Embedded Design Suite (EDS) is automatically

More information

歯15-ROMPLD.PDF

歯15-ROMPLD.PDF MSI & PLD MSI (Medium Scale Integrate Circuit) gate adder, subtractor, comparator, decoder, encoder, multiplexer, demultiplexer, ROM, PLA PLD (programmable logic device) fuse( ) array IC AND OR array sum

More information

The Self-Managing Database : Automatic Health Monitoring and Alerting

The Self-Managing Database : Automatic Health Monitoring and Alerting The Self-Managing Database : Automatic Health Monitoring and Alerting Agenda Oracle 10g Enterpirse Manager Oracle 10g 3 rd Party PL/SQL API Summary (Self-Managing Database) ? 6% 6% 12% 55% 6% Source: IOUG

More information

untitled

untitled while do-while for break continue while( ) ; #include 0 i int main(void) int meter; int i = 0; while(i < 3) meter = i * 1609; printf("%d %d \n", i, meter); i++; return 0; i i< 3 () 0 (1)

More information

11¹Ú´ö±Ô

11¹Ú´ö±Ô A Review on Promotion of Storytelling Local Cultures - 265 - 2-266 - 3-267 - 4-268 - 5-269 - 6 7-270 - 7-271 - 8-272 - 9-273 - 10-274 - 11-275 - 12-276 - 13-277 - 14-278 - 15-279 - 16 7-280 - 17-281 -

More information

<31342D3034C0E5C7FDBFB52E687770>

<31342D3034C0E5C7FDBFB52E687770> 아카데미 토론 평가에 대한 재고찰 - 토론승패와 설득은 일치하는가 - 장혜영 (명지대) 1. 들어가는 말 토론이란 무엇일까? 토론에 대한 정의는 매우 다양하다. 안재현 과 오창훈은 토론에 대한 여러 정의들을 검토한 후 이들을 종합하 여 다음과 같이 설명하고 있다. 토론이란 주어진 주제에 대해 형 식과 절차에 따라 각자 자신의 의견을 합리적으로 주장하여 상대

More information

chap 5: Trees

chap 5: Trees 5. Threaded Binary Tree 기본개념 n 개의노드를갖는이진트리에는 2n 개의링크가존재 2n 개의링크중에 n + 1 개의링크값은 null Null 링크를다른노드에대한포인터로대체 Threads Thread 의이용 ptr left_child = NULL 일경우, ptr left_child 를 ptr 의 inorder predecessor 를가리키도록변경

More information

예제 1.1 ( 관계연산자 ) >> A=1:9, B=9-A A = B = >> tf = A>4 % 4 보다큰 A 의원소들을찾을경우 tf = >> tf = (A==B) % A

예제 1.1 ( 관계연산자 ) >> A=1:9, B=9-A A = B = >> tf = A>4 % 4 보다큰 A 의원소들을찾을경우 tf = >> tf = (A==B) % A 예제 1.1 ( 관계연산자 ) >> A=1:9, B=9-A A = 1 2 3 4 5 6 7 8 9 B = 8 7 6 5 4 3 2 1 0 >> tf = A>4 % 4 보다큰 A 의원소들을찾을경우 tf = 0 0 0 0 1 1 1 1 1 >> tf = (A==B) % A 의원소와 B 의원소가똑같은경우를찾을때 tf = 0 0 0 0 0 0 0 0 0 >> tf

More information

컴파일러

컴파일러 YACC 응용예 Desktop Calculator 7/23 Lex 입력 수식문법을위한 lex 입력 : calc.l %{ #include calc.tab.h" %} %% [0-9]+ return(number) [ \t] \n return(0) \+ return('+') \* return('*'). { printf("'%c': illegal character\n",

More information

, ( ) 1) *.. I. (batch). (production planning). (downstream stage) (stockout).... (endangered). (utilization). *

, ( ) 1) *.. I. (batch). (production planning). (downstream stage) (stockout).... (endangered). (utilization). * , 40 12 (2006 6) 1) *.. I. (batch). (production planning). (downstream stage) (stockout).... (endangered). (utilization). * 40, 40 12 (EPQ; economic production quantity). (setup cost) (setup time) Bradley

More information

Microsoft PowerPoint Predicates and Quantifiers.ppt

Microsoft PowerPoint Predicates and Quantifiers.ppt 이산수학 () 1.3 술어와한정기호 (Predicates and Quantifiers) 2006 년봄학기 문양세강원대학교컴퓨터과학과 술어 (Predicate), 명제함수 (Propositional Function) x is greater than 3. 변수 (variable) = x 술어 (predicate) = P 명제함수 (propositional function)

More information

0. 표지에이름과학번을적으시오. (6) 1. 변수 x, y 가 integer type 이라가정하고다음빈칸에 x 와 y 의계산결과값을적으시오. (5) x = (3 + 7) * 6; x = 60 x = (12 + 6) / 2 * 3; x = 27 x = 3 * (8 / 4

0. 표지에이름과학번을적으시오. (6) 1. 변수 x, y 가 integer type 이라가정하고다음빈칸에 x 와 y 의계산결과값을적으시오. (5) x = (3 + 7) * 6; x = 60 x = (12 + 6) / 2 * 3; x = 27 x = 3 * (8 / 4 Introduction to software design 2012-1 Final 2012.06.13 16:00-18:00 Student ID: Name: - 1 - 0. 표지에이름과학번을적으시오. (6) 1. 변수 x, y 가 integer type 이라가정하고다음빈칸에 x 와 y 의계산결과값을적으시오. (5) x = (3 + 7) * 6; x = 60 x

More information

chap10.PDF

chap10.PDF 10 C++ Hello!! C C C++ C++ C++ 2 C++ 1980 Bell Bjarne Stroustrup C++ C C++ C, C++ C C 3 C C++ (prototype) (type checking) C C++ : C++ 4 C C++ (prototype) (type checking) [ 10-1] #include extern

More information

제4장 기본 의미구조 (Basic Semantics)

제4장  기본 의미구조 (Basic Semantics) 제 4 장블록및유효범위 Reading Chap. 5 숙대창병모 1 4.1 변수선언및유효범위 숙대창병모 2 변수선언과유효범위 변수선언 Declaration before Use! 대부분의언어에서변수는사용전에먼저선언해야한다. 변수의유효범위 (scope) 선언된변수가유효한 ( 사용될수있는 ) 프로그램내의범위 / 영역 변수이름뿐아니라함수등다른이름도생각해야한다. 정적유효범위

More information

비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2

비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2 비트연산자 1 1 비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2 진수법! 2, 10, 16, 8! 2 : 0~1 ( )! 10 : 0~9 ( )! 16 : 0~9, 9 a, b,

More information

Line (A) å j a k= i k #define max(a, b) (((a) >= (b))? (a) : (b)) long MaxSubseqSum0(int A[], unsigned Left, unsigned Right) { int Center, i; long Max

Line (A) å j a k= i k #define max(a, b) (((a) >= (b))? (a) : (b)) long MaxSubseqSum0(int A[], unsigned Left, unsigned Right) { int Center, i; long Max 알고리즘설계와분석 (CSE3081-2반 ) 중간고사 (2013년 10월24일 ( 목 ) 오전 10시30분 ) 담당교수 : 서강대학교컴퓨터공학과임인성수강학년 : 2학년문제 : 총 8쪽 12문제 ========================================= < 주의 > 답안지에답을쓴후제출할것. 만약공간이부족하면답안지의뒷면을이용하고반드시답을쓰는칸에답안지의어느쪽의뒷면에답을기술하였는지명시할것.

More information

APOGEE Insight_KR_Base_3P11

APOGEE Insight_KR_Base_3P11 Technical Specification Sheet Document No. 149-332P25 September, 2010 Insight 3.11 Base Workstation 그림 1. Insight Base 메인메뉴 Insight Base Insight Insight Base, Insight Base Insight Base Insight Windows

More information

Microsoft PowerPoint - a10.ppt [호환 모드]

Microsoft PowerPoint - a10.ppt [호환 모드] Structure Chapter 10: Structures t and Macros Structure 관련된변수들의그룹으로이루어진자료구조 template, pattern field structure를구성하는변수 (cf) C언어의 struct 프로그램의 structure 접근 entire structure 또는 individual fields Structure는

More information

00-Intro

00-Intro SSE3054: Multicore Systems Spring 2017 Jinkyu Jeong (jinkyu@skku.edu) Computer Systems Laboratory Sungkyunkwan University http://csl.skku.edu SSE3054: Multicore Systems, Spring 2017, Jinkyu Jeong (jinkyu@skku.ed)

More information

歯CRM개괄_허순영.PDF

歯CRM개괄_허순영.PDF CRM 2000. 8. KAIST CRM CRM CRM CRM :,, KAIST : 50%-60%, 20% 60%-80%. AMR Research 10.. CRM. 5. Harvard Business review 60%, 13%. Michaelson & Associates KAIST CRM? ( ),,, -,,, CRM needs,,, dynamically

More information

` Companies need to play various roles as the network of supply chain gradually expands. Companies are required to form a supply chain with outsourcing or partnerships since a company can not

More information

Microsoft PowerPoint - SVPSVI for LGNSYS_20120320.ppt

Microsoft PowerPoint - SVPSVI for LGNSYS_20120320.ppt IBM Partner Program March, 2012 Jaemin, Lee SWG Channels, IBM Korea SWG Channels 2012 IBM Corporation Agenda IBM Korea SWG Channels Software Value Plus Software Value Incentive Revalidation 2 IBM Software

More information

bn2019_2

bn2019_2 arp -a Packet Logging/Editing Decode Buffer Capture Driver Logging: permanent storage of packets for offline analysis Decode: packets must be decoded to human readable form. Buffer: packets must temporarily

More information

KDTÁ¾ÇÕ-2-07/03

KDTÁ¾ÇÕ-2-07/03 CIMON-PLC CIMON-SCADA CIMON-TOUCH CIMON-Xpanel www.kdtsys.com CIMON-SCADA Total Solution for Industrial Automation Industrial Automatic Software sphere 16 Total Solution For Industrial Automation SCADA

More information

0125_ 워크샵 발표자료_완성.key

0125_ 워크샵 발표자료_완성.key WordPress is a free and open-source content management system (CMS) based on PHP and MySQL. WordPress is installed on a web server, which either is part of an Internet hosting service or is a network host

More information

2017.09 Vol.255 C O N T E N T S 02 06 26 58 63 78 99 104 116 120 122 M O N T H L Y P U B L I C F I N A N C E F O R U M 2 2017.9 3 4 2017.9 6 2017.9 7 8 2017.9 13 0 13 1,007 3 1,004 (100.0) (0.0) (100.0)

More information

<30362E20C6EDC1FD2DB0EDBFB5B4EBB4D420BCF6C1A42E687770>

<30362E20C6EDC1FD2DB0EDBFB5B4EBB4D420BCF6C1A42E687770> 327 Journal of The Korea Institute of Information Security & Cryptology ISSN 1598-3986(Print) VOL.24, NO.2, Apr. 2014 ISSN 2288-2715(Online) http://dx.doi.org/10.13089/jkiisc.2014.24.2.327 개인정보 DB 암호화

More information

PRO1_04E [읽기 전용]

PRO1_04E [읽기 전용] Siemens AG 1999 All rights reserved File: PRO1_04E1 Information and S7-300 2 S7-400 3 EPROM / 4 5 6 HW Config 7 8 9 CPU 10 CPU : 11 CPU : 12 CPU : 13 CPU : / 14 CPU : 15 CPU : / 16 HW 17 HW PG 18 SIMATIC

More information

<31325FB1E8B0E6BCBA2E687770>

<31325FB1E8B0E6BCBA2E687770> 88 / 한국전산유체공학회지 제15권, 제1호, pp.88-94, 2010. 3 관내 유동 해석을 위한 웹기반 자바 프로그램 개발 김 경 성, 1 박 종 천 *2 DEVELOPMENT OF WEB-BASED JAVA PROGRAM FOR NUMERICAL ANALYSIS OF PIPE FLOW K.S. Kim 1 and J.C. Park *2 In general,

More information

OCW_C언어 기초

OCW_C언어 기초 초보프로그래머를위한 C 언어기초 4 장 : 연산자 2012 년 이은주 학습목표 수식의개념과연산자및피연산자에대한학습 C 의알아보기 연산자의우선순위와결합방향에대하여알아보기 2 목차 연산자의기본개념 수식 연산자와피연산자 산술연산자 / 증감연산자 관계연산자 / 논리연산자 비트연산자 / 대입연산자연산자의우선순위와결합방향 조건연산자 / 형변환연산자 연산자의우선순위 연산자의결합방향

More information

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조 - Part2- 제 2 장다차원배열이란무엇인가 학습목차 2.1 다차원배열이란 2. 2 2 차원배열의주소와값의참조 2.1 다차원배열이란 2.1 다차원배열이란 (1/14) 다차원배열 : 2 차원이상의배열을의미 1 차원배열과다차원배열의비교 1 차원배열 int array [12] 행 2 차원배열 int array [4][3] 행 열 3 차원배열 int array [2][2][3]

More information

11장 포인터

11장 포인터 Dynamic Memory and Linked List 1 동적할당메모리의개념 프로그램이메모리를할당받는방법 정적 (static) 동적 (dynamic) 정적메모리할당 프로그램이시작되기전에미리정해진크기의메모리를할당받는것 메모리의크기는프로그램이시작하기전에결정 int i, j; int buffer[80]; char name[] = data structure"; 처음에결정된크기보다더큰입력이들어온다면처리하지못함

More information

step 1-1

step 1-1 Written by Dr. In Ku Kim-Marshall STEP BY STEP Korean 1 through 15 Action Verbs Table of Contents Unit 1 The Korean Alphabet, hangeul Unit 2 Korean Sentences with 15 Action Verbs Introduction Review Exercises

More information

<C1DF3320BCF6BEF7B0E8C8B9BCAD2E687770>

<C1DF3320BCF6BEF7B0E8C8B9BCAD2E687770> 2012학년도 2학기 중등과정 3학년 국어 수업 계획서 담당교사 - 봄봄 현영미 / 시온 송명근 1. 학습 목적 말씀으로 천지를 창조하신 하나님이 당신의 형상대로 지음 받은 우리에게 언어를 주셨고, 그 말씀의 능 력이 우리의 언어생활에도 나타남을 깨닫고, 그 능력을 기억하여 표현하고 이해함으로 아름다운 언어생활 을 누릴 뿐만 아니라 언어문화 창조에 이바지함으로써

More information

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D313939392D382E687770>

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D313939392D382E687770> i ii iii iv v vi 1 2 3 4 가상대학 시스템의 국내외 현황 조사 가상대학 플랫폼 개발 이상적인 가상대학시스템의 미래상 제안 5 웹-기반 가상대학 시스템 전통적인 교수 방법 시간/공간 제약을 극복한 학습동기 부여 교수의 일방적인 내용전달 교수와 학생간의 상호작용 동료 학생들 간의 상호작용 가상대학 운영 공지사항,강의록 자료실, 메모 질의응답,

More information

KDTÁ¾ÇÕ-1-07/03

KDTÁ¾ÇÕ-1-07/03 CIMON-PLC CIMON-SCADA CIMON-TOUCH CIMON-Xpanel www.kdtsys.com CIMON-PLC Total Solution for Industrial Automation PLC (Program Logic Controller) Sphere 8 Total Solution For Industrial Automation PLC Application

More information

목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2

목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2 제 8 장. 포인터 목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2 포인터의개요 포인터란? 주소를변수로다루기위한주소변수 메모리의기억공간을변수로써사용하는것 포인터변수란데이터변수가저장되는주소의값을 변수로취급하기위한변수 C 3 포인터의개요 포인터변수및초기화 * 변수데이터의데이터형과같은데이터형을포인터 변수의데이터형으로선언 일반변수와포인터변수를구별하기위해

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 @ Lesson 3 if, if else, if else if, switch case for, while, do while break, continue : System.in, args, JOptionPane for (,, ) @ vs. logic data method variable Data Data Flow (Type), ( ) @ Member field

More information