Microsoft PowerPoint - 사본 - 7월23일-공개용.pptx
|
|
- 서형 즙
- 6 years ago
- Views:
Transcription
1 금융문제에대한 병렬몬테카를로시뮬레이션 유현곤연세대학교수학과박사과정 yhgon@yonsei.ac.kr 2008 년 7 월 23 일수요일 10 시고려대학교금융세미나
2 Agenda 1. 연세소개 2. 기초금융과 Monte Carlo Simulation 3. 병렬처리 (pmc) 에대한이해 4. 수퍼컴퓨터를이용한 pmc I (openmp) 5. 수퍼컴퓨터를이용한 pmc II (MPI) 6. 대안적방법론 1 Clearspeed 가속보드를이용한 pmc 7. 대안적방법론 2 CUDA 를이용한 pmc 9. Q & A
3 연세대학교 t / 교수님 3 분, 박사과정 : 4 명, 석사과정 : 12 명, 학부생 : 15 명 금융공학네트워크활성화 금융수학적학술연구 금융공학적상품공동개발및연구 금융 IT 솔루션공동연구 설립목적 연구사업 금융선진화를위한경쟁력제고 산학협력차원의연구와교육 국내외 금융전문인력 협력기관과의 양성프로그램 교류연구 개발공동연구 국내외학술교류해외석학초청세미나 2008년 5회개최산학협력세미나 2008년 7회개최병렬컴퓨팅자문 - LG 전자, KISTI, 산학협력공동연구프로젝트등 - 도우컴퓨팅, ITS, 교보증권
4 연세대학교 공동연구 교육프로그램개발 연세대수학과 연세대산업공학과정보통계연구실 다학제간공동연구 산학협력프로젝트 연세대수학과 김정훈 ( 확률미분방정식과금융 ) 김해경 ( 통계적금융자료분석 ) 이승철 ( 확률론과금융 ) 연세대경영학과 김주철 ( 금융공학 ) 김학은 ( 화폐금융 ) 조하현 ( 경기변동및리스크 ) ITS 도우컴퓨팅 교보증권
5 연세연구현황 연구센터정식설립인가는 2008 년 3 월 하지만 1997 년초부터 3 분의교수님들을중심으로금융수학연구시작 금융수학교재출판이승철, 수학과현대금융사회, 2002, 교우사김정훈, 금융수학, 2005, 교우사김정훈, 금융과수학의만남, 2006, 교우사 1998 년부터 SDE 강의 ( 대학원, Oksendal 교재 ) 2000년부터수학과현대사회강의 ( 학부교양과목 ) 2004년부터응용수학 ( 학부금융수학강의 ) 2006 년부터 Levy process 강의 ( 대학원, Applebaum 교재, Cont 교재 )
6 연세연구현황 금융관련해외학술교류 2004년호주 2005년쿄토 2005년호주 키지마교수초청
7 연세연구현황 해외학술교류 2006 년 Bacheiler Conference 참석 2008 년 American Option 의대가호주 Zhu 교수님의세미나
8 연세연구현황 해외학회발표 2007 년게이오대학 SV bond option CEV 모델 SVRS 모델
9 연세연구현황 국내학회참석 2008 kms 미팅 ( 계명대학교 ) 2008 Kms 확률론워크숍 ( 고려대학교 ) 차 ICFIDCAA ( 동국대학교 ) 2008 년금융공동학회참석
10 연세연구현황 산학협력세미나개최 이하생략 2007년 6월 10일장원재박사 - 삼성증권 2007년 10월 11일정대용박사 - 한국금융연수원 2007 년 11 월 14 일서승석박사 - 한국투자증권 2007년 11월 21일박도현박사 - 한국투자증권 2008년 3월 20일박종곤박사 ITS 2008 년 4 월 16 일배원성박사 - 도우컴퓨팅 2008년 5월 17일김영성과장 신한은행 2008년 5월 30일김종훈과장 한화증권금융공학팀 2008년 7월 4일 Eric Young - 미국Nvida 본사 2008년 7월 11일기호삼박사 KIS채권평가
11 연세연구현황 세미나관련포스터들
12 연세연구현황 연세대세미나 7 월 23 일저녁 5 시 호주머큐리대학 장지욱박사님
13 연세연구현황 병렬컴퓨팅연구현황 수퍼컴퓨터를이용한병렬처리 (Monte Carlo Simulation) 년 3 월부터 Clearspeed 를이용한병렬처리 (Monte Carlo Simulation) 년 6 월부터도우컴퓨팅과공동연구진행중 CUDA를이용한병렬처리 (Monte Carlo Simulation) 년 1월부터세미나개최 2008년 6월 12일, 7월 4일, 7월 11일연구결과발표 - KMS 확률론워크숍 6월 13일 ( 서울 ), 16th ICFIDCAA 7월 30일 ( 경주, 예정 ) ieee submit 예정 CUDA 등병렬처리관련대학연구팀, 연구기관및업체들과산학연협력체제및네트워크구축중
14 2. 기초계산재무및 MC
15 Introduction for Option Pricing European Call Option 1. asset dyanmics GBM : ds t = μs tdt + σ S tdw t 2. payoff [ S K ] + T Payoff [ S K ] + T K ST 3. option price is Q rτ + C=E [ e [ S K]] t T
16 r τ + 옵션의현재가치 C=E[ e [ S K ]] t T 직접풀이 Closed form solution C= t S Φ( d ) Ke Φ( d ) r τ x 1 x 2 2 ln( S0 K) + ( r σ 2) Φ ( x) = e dz 2π d1 = 2 1 σ τ τ d = d σ τ PDE 방법 in FDM, FEM, Meshless f f f 1 2 f f rx + ry + f 2σx + ρσ 2 xσ y + 2σ y = rf 2 t x y x x y y 시뮬레이션방법 Monte Carlo N rτ + 1 rτ E[ e [ ST K] ] = lim e [ ST K] N i N i +
17 Closed Form solution European Call Option Q rτ + C=E [ e [ S K]] t T 4. By Ito s lemma Q T 1 2 ( r 2 σ ) τ+ σw = BS-PDE : S S e τ ST = S e ( r σ ) τ+ σ τn(0,1) 5. By Feynmann-Kac Theorem f + rxf + σ x f = rf t x 2 xx 6. Closed Form Solution r C= t S0Φ( d1) Ke τ Φ( d2) x 1 x 2 2 Φ ( x) = e dz 2π d 1 2 ln( S0 K) + ( r σ 2) τ = 2 1 σ τ d = d σ τ
18 새로운구조의상품에대한분석작업 (FDM) 상품설명서 Front (marketer) 2Month Overview of Greek Hedge Simulation Accept or Not Needs veteran quant within few days Hard for junior quant Middle (quant) System FDM code in Matlab or C/C++ FDM code in C/C++ code 1~2 week ( for debugging) Use own library & similar codes Consider boundary conditions 매일반복계산 Hedging ( 매일 ) Front (ELS 운영부서 ) 가격, Greeks 요청 Computer Hedging ( 매일 ) 5-20 sec 이내결과출력 가격, Greeks
19 PDE method for ELS f f f 1 2 f f rx + ry + f 2σx + ρσ 2 xσ y + 2σ y = rf 2 t x y x x y y With Boundary Value& Terminal Payoff Domain for 2-Star n-chance Stepdown ELS Step down Worst Perf.
20 Monte Carlo Simulation Law of Large Number : we can compute expectation N rτ 1 rτ E [ e [ S K ] ] = lim T e [ S T K ] N i N + + S T We can generate any process from given dynamics ds t = μ S t dt + σ S t dw t ds = μs dt + f ( Y ) S dw t t t t t i
21 Monte Carlo Simulation Why MC is need? Easy to imply 적용이쉽다. Complex structure : path-dependence, prepayment, complex payoff, etc. ELS 등복잡한상품의적용에유리 High demension : multi-asset problems (n>4) MC is the only solution (or sparse grid method) 다자산상품에대한유일한방법임
22 Monte Carlo Simulation 상품발행시상품거래시 Pricing Pricing Overview of Greek Greeks Search Hedge Simulation VaR계산, 위험관리조기상환확률계산 신상품 Hedging ( 매일 ) Hedging ( 매일 ) Easy for even junior quant 몇시간이내구현 가격, Greeks 요청가격, Greeks 출력 Simple MC coding Computer Excel/VBA, Matlab, C/C++ Library, Rand() 함수이용 debugging
23 Monte Carlo Simulation N rτ 1 rτ E[ e [ ST K] ] = lim e [ ST K] N i N + + i % 01: % % % 01: :09.12 N : 10 만번이상시행해줘야함 % 00: % % % 00: :17.28 실제거래되는 ELS의계산시 10 만번실행에 1 분정도계산시간소요 % 500 1,000 5,000 10,000 20,000 50, , ,000,000,000 00: 개의상품이라면 2 시간이상소요 1 현재국내업계의구현방법 1. 5 만번정도만돌림 2. FDM 등의방법이용
24 250 time step Path simulation 환경 : Intel CPU 3Ghz Black-Scholes Clsoed : Monte Carlo Simulation : Error : Simple MC 의경우 10 만이상이 Simulation 하는것이적당 7.65sec 하지만계산시간의제약으로약 5 만번정도만돌리면 Why MC is not used? Most contracts(95%) can be solved without MC. (closed, FDM) Computation Time : Too slow to get accurate results -1 minutes for each pricing. 4 minutes for greeks 100 contracts : 7 hours to comutes (1 day : 6 hours) 시나리오분석용 Greek plot 그리려면하루종일걸림 병렬화 Unstable sensitivity : non-smooth greeks plot
25 Reasonable Solutions to speed up MC 1. New theory in convergence Malliavin Calculus, Operator Technique, Asymptotics 2. Fast pseudo & quasi-rngs, Transformation 3. Control Variate, Variance Reduction 4. Using Powerful Computer 5. Parallel Computing 1주제 HPC(use many CPUs) - OpenMP(SMP), MPI (Cluster) Alternative Method - IBM Cell BE, ClearSpeed, GPGPU(CUDA) 2주제 3주제 이상적모델 :1234 1,2,3.4 를먼저실시하고 5 에관심을갖는다.
26 Pseudo vs. Quasi 본 발표에서는 생략 LCG Halton Sequence
27 3. 병렬처리 (pmc) 에대한이해
28 HPC 와분산처리의차이 병렬처리는크게 3 가지로나뉘는데 하나의방법은 HPC 로, 하나의작업을여러개로쪼개어계산하도록함으로써계산시간을단축시킴 다른하나의방법은여러개의작업을여러개의서버에분산처리시켜전체작업시간을단축시키는기법 웹서버, 게임서버에사용되는로드벨런싱도분산처리기법의하나임 계산의관점에서병렬처리는 HPC 를의마함 분산처리의예하나의자산당 200초걸리는자산 200개가있다. 총 40000초걸림 200개의서버에서각자산정보를보내서돌린결과를받음 병렬처리할필요없이 200초만에모든 VaR 계산 Quant에게유리 ( 다시코딩할필요없음 ), 회사입장비용문제 ( 수십억원 )
29 금융권에서의병렬화진행상황 일반프로그래밍 Excel/VBA 혹은 C/C++ 금융프로그래밍 Excel2007 에서 excel 내장함수가아닌 Excel/VBA, C/C++ 을사용하면오히려속도가느려지는현상이발생하는경우가있음 (excel 에서 cell 단위자동분산처리함 ) 분산처리여러명이동시에작업을수행함, 혹은여러대의컴퓨터가동시에여러작업을수행함서버가알아서처리하므로 Quant는신경쓸필요없음현재많은중소형증권사 (4년전대부분금융권 HPC컨퍼런스 Intel 한국지사부사장曰 ) HPC Cluster기반병렬시스템을구축하였거나구축하려는추세 (ELS 라이센싱대형증권사 ) 외산병렬시스템도입을고려 ( 대형은행 ) 병렬프로그래밍이가능한퀀트필요 인력이절대적으로부족함금융관련대학 : -- 연세대수학과 (cluster구축) 유일비금융대학 : 타전공은많은편임 (CS, 기계등 ) 대안적가속처리 (IBM Cell, CS, CUDA 등 ) 최근관심이높아짐, 하지만, 역시인력부족금융관련대학 : 연세대수학과유일 (CS, CUDA), 해외 (Oxford Univ. ) 비금융대학 : 이화여대그래픽연구실 (CUDA), 각대학컴공, 물리, 천문대기, 기계등
30 병렬처리 (HPC High performance Computing) 하나의작업을여러개의 CPU(Cores) 로작업을실행시켜계산시간을줄이는방법 Wall Clock Time Task 를병렬처리에의해처리하는데걸린전체시간 Wall Clock Time 1 Original Jobs Parallel Overheads Wall Clock Time 2
31 몇년기다리면빠른컴퓨터가나오지않을까? 그냥엔터치면결과값이나올텐데.. 지금병렬화를배워서금융에적용해야하나? 현재출시되는모든 CPU 는 Dual Core, Quad 코어기반임 추후출시되는 CPU 는 8 core, 16 core, 32 core 로연산속도증가보다는하나의칩에코어의개수를늘리는방식으로개발되고있음 이러한멀티코어시스템의성능을 100% 발휘하도록하려면 모두병렬프로그래밍을해주어야함.
32 Application for Massively Parallel MC 신규상품발생시 Front 입장 ELS 발행 마진 Hedge Scenario Price Greek Greeks(T,S1,S2 ) New ELS Parallel MC 속도는 single FDM 보다빠르고개발주기는훨씬짧음 32
33 Application for Massively Parallel MC VaR 을통한위험관리시 RM ( 위험관리 ) Portfolio Analysis Stress Test VaR Greeks ELS ELS products ELS products ELS products ELS products ELS products ELS products products Parallel l MC 위험관리용계산시간을획기적으로단축시킴 ELW ELW ELW ELW ELW Parallel Tasks 33
34 Application for Massively Parallel MC 채평사 가격 baord Parallel MC 를사용하여기존 MC의가속화 수많은상품들 ELS ELS products ELS products ELS products ELS products ELS products ELS products products Parallel l MC 34
35 Parallel MC 구현의용이성 상품설명서 Simple MC coding 비전문가도코딩이가능한가? 쉽게구현가능한가? 코드수정이많이필요한가? 코드재사용이용이한가? 구축비용이많은가? 유지관리가용이한가? parallel l MC coding 과연속도가빠른가? 병렬실행병렬실행병렬실행병렬실행
36 병렬프로그래밍을위한시스템구축 하드웨어구조
37 KISTI 수퍼컴퓨터 4 호기 Tachyon 구분 내용 모델명 SUN Blade 6048 블레이드노드 성능 : 24TFlops(Rpeak) 노드 : 188개 ( 컴퓨팅 ) CPU AMD Opteron 2.0GHz 4 개노드당 : 16 Core (Quad Core) 총 : 3,008 개 ( 전체 ) 메모리 32GB( 노드 ) 스토리지 207TB( 디스크 ), 422TB( 테이프 ) 노드간네트워 Infiniband ib 4X DDR 크
38 HPC in cluster 여러대의 SMP 를네트웍으로연결 Each Nodes has 2-8 CPUs 4~10 Gflops in DP for each CPUs Each Nodes connected by Infiniband, Gigbit Ethernet nodes system is possbe possible Support standard OpenMP & MPI library Benefit : develop envirinment, Technical supports from vender PRNGs library for Monte Carlo simulation MC 의경우 1 만배이상속도향상을기대할수있음 : 하지만구축및관리비용이많음 Too expensive 기상청 15Tflops 서버도입비용 200억이상 ( 전기, 쿨링, 공간, 네트웍, 관리자등유지비필요 ) 금융권에필요한성능의서버 HPC for 400 Gflops 서버도입비용 - 수억원이상 ( 유지비, 설치공간등별도 ) IBM, HP 등개발용 8 workstation : 300만원 ~1천만원정도면 whitebox 구축 ( 제작 ) 가능개발용 2 node 2*8 core cluster : 1천만원정도면 whitebox 구축가능
39 금융권 HPC 용 16 코어 SMP 머신 도입비용약 2000 만원가량 HP ProLiant DL580G5 Rack Type 4U case 사용인텔제온 E7340 CPU 4 개 : 16 코어메모리 8GB Node 당 100Gflops 유지 Tachyon 1 노드와유사한성능 8 노드도입시약 3 억원정도예상됨 성능 : 64 배향상 국내금융권도입 : 비용대비성능향상의미약으로 HPC 도입이잘안됨
40 수퍼컴퓨터 4 호기 Tachyon on KISTI 구분 내용 계정 SRU 100시간 : 100만원 ( 기업 ) SRU 10 시간 : 10 만원 ( 학생 ) 접속환경 ssh 접속 30분 실행환경컴파일러병렬라이브러리수치라이브러리 CentOS Linux 환경 GCC, PGI Compiler, Intel Compiler OpenMPI IMKL, IMSL 등 계정사용을통해 HPC 도입효과를미리검토해볼수있음
41 작업노드 ( 프로그래밍, 디버깅 ) Tachyon Server 는 SSH 를통해접속해야하고 30분까지로접속시간이제한되어있음 따라서, 다음의시스템에서 OpenMP, MPI 코딩을작성, 디버깅하고최종결과물은 Tachyon에서실행하는방법을사용한다. 1. Windows XP 환경 (PC) : GUI 환경에서 programming MS Visual Studio MPICH2 2. Linux 환경 (server) : linux에서실행테스트 ICC OpenMPI 3. Tachyon Server : 최종코드를 job_batch 실행
42 SSH 원격접속환경 Windows 환경에서 PuTTY 를통해접속
43
44 병렬환경 SMP 머신 : OpenMP 프로그래밍 16coe core 지원 : 2 천만원미만 (16 배성능향상보장 ) Cluster 머신 : MPI 프로그래밍 64 core 지원 : 1 억원미만 : (60 배성능향상보장 ) OpenMP, MPI : ( 무료 ) IMSL, IMKL : 병렬라이브러리 : ( 유료 )
45 병렬알고리즘 45
46 Parallel FDM, FEM (matrix) Main For(i=1,i<N,i++){ PE1 PE2 PEn-1 PEn 인접데이터의통신에의한 bottleneck
47 Parallel MC simulation Main Divide & Conquer For(i=1,i<N,i++){ PE1 PE2 PEn-1 PEn For(i=1,i<N, M){... } For(i=1,i<N, M){... } For(i=1,i<N, M){ For(i=1,i<N, M){ } } 인접데이터의통신이필요없음 : MC 병렬 scailability 가좋다
48 Parallel Monte Carlo Simulation in Finance 상품설명서 Easy for even junior quant Simple MC coding Need veteran parallel coder or library Single Code가잘구축되어있고, 병렬라이브러리가구축되어있다면신상품의병렬화는매우쉽다. (openmp 이용시 ) 몇시간이내 Use own Parallel library & similar codes parallel l MC coding 매일반복계산 Hedging ( 매일 ) 가격, Greeks 요청 병렬실행병렬실행병렬실행병렬실행 Hedging ( 매일 ) Tachyon 급수퍼컴퓨터 0.05 sec 이내결과출력 가격, Greeks
49 LCG32 X ( a X c) mod m n+ 1 = n + M a c Visual C/C GNU C Unix (LCG48) ANSI C Numerical Recipes Period : = = 4.2 * 10 9 약 42 억개
50 Parallel RNGs
51 Split Method for (i=0; i<n-1; i++ ) for (i=istart; i<iend; i++) CPU ID 0 CPU ID 1 CPU ID 2 51
52 Multiseed Method for (i=0; i<n-1; i++ ) srand48p(123+(1+cpuid)*45); for (i=0; i<chunksize-1; ) CPU ID 0 CPU ID 1 CPU ID 2 52
53 Leap Frog Method for (i=0; i<n-1; i++ ) for (i=istart; i<n-chunksize-1; CHUNKSIZE ) CPU ID 0 CPU ID 1 53
54 Problems in Parallel MC LCG : 2^ 억개 54
55 Suitability for Parallel Method Multiseed Leapfrog Splitting DC D.C JAh J.Ah. LCG OK OK OK X - RAND48 OK OK OK X - MCG OK OK OK X - Lagged Pibonachi OK OK OK X - MWC OK OK OK X - MT19937 OK X X OK OK Well RNG OK?? OK 55
56 Dynamic Creation for (i=0; i<n-1; i++ ) Complex dividing for non-overlapping cycle for (i=0; i<chunksize-1; ) CPU ID 0 CPU ID 1 CPU ID 2 56
57 Jump-Ahead Method for (i=0; i<n-1; i++ ) Divide sequence with GF(2) polynomial for (i=0; i<chunksize-1; ) CPU ID 0 CPU ID 1 CPU ID 2 57
58 Algorithm for MT19937
59 smt architecture of MT19937 Initial ii Seed i i+1 smt Generator Extractor U1 i+m i+m+1 623
60 MT19937 병렬화 Shared pmt architecture of MT19937 Initial Seed U2 Generator Extractor 0 Generator 1 Extractor 2 U1 i i+1 Parallel pmts With Large StepSize 1cycle generate 624 RNGs i+m i+m Generator Extractor Un Share Memory
61 Parallel smt MT19937 Each Cores execute smt independently We will use this model i i+1 i i+1 i i+1 i+m i+m+1 i+m i+m+1 i+m i+m
62 Parallel Quasi RNG For Loop Nsim simulation For Loop for T simulation of path Method 1 base p 에의한병렬화 Split Halton with Nsim / is # of core Core has own Base 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59 Scramble each Sequence with T times Method 2 : 준주기성을고려한 n 병렬화 select large prime such as 23 Compute Split K= Nsim/16 * 24 n=(k*coreid + i) Parallely Compute Halton(23,n) Scrample each Sequence with T times
63 실제병렬화 신상품, 상품설명서 Excel, Matlab, C/C++ 코딩 싱글코드알고리즘 디버깅 Profile 병렬화시스템결정 계산로드가많이걸리는부분파악 SMP, MPI, CUDA, CSCN, etc 병렬코딩 OpenMP, MPI, Matlab, etc. 실행및디버깅 결과출력
64 금융문제의병렬화기법 사용방법1 총 M회시뮬레이션을병렬처리각 N 개의 Core 가 M/N 회시뮬레이션실행각 Core가독립적으로 Boxmuller 및 RNG 생성 1/N으로계산시간단축 장점 : single code의 90% 이상그대로사용 방법2 1. RNG 를병렬화하여미리생성 2. N개의시뮬레이션을병렬처리 3. N개의시뮬레이션평균 조기상환시 RNG 생성시간낭비 방법3 Table Technique RNG 를병렬화하여미리생성 (1 회 ) memory에 load하여필요시사용각상품별로 (K 회 ) M/N회의시뮬레이션을병렬처리 모듈화작업시 single code 를그대로사용가능 많은상품을계산해야하는시스템에서적합 1/K*N 으로계산시간단축충분한메모리가확보및분산처리 Memory access bottleneck 발생
65 Single Code 병렬몬테카를로시뮬레이션예제 1. Full-path 유럽형 Vanilla Call 옵션 : reference & benchmark 용 S : 100, K : 100, r : , v : 0.3, T : 1 2. ELS pricing : 삼성증권 1909 호주식연계증권 3 년만기 2 star : POSCO 일반주, S-Oil 12 chance : 디지털옵션 Double Barrier Down barrier : 장중체크 ( 둘중하나라도하락한계 ) Up barrier : 매일종가체크 ( 두개다상승한계 ) Step-down : 없음, 동일한조기상환조건 (Digital Option 형태 ) 지급 : 조기상환시 +2 영업일
66 4. 수퍼컴퓨터를이용한 parallel Monte Carlo Simulation I OpenMP 를이용한병렬화
67 OpenMP 개념 메모리를공유한 SMP 머신 (core2 duo 등의형태 ) 에서병렬코딩함. 16 코어머신을이용하면 MC 의경우약 16 배의속도향상기대 C/C++ 언어와 Fortran 언어를지원함 Windows 환경은 Visual Studio 2003 이상에서기본지원 Unix 환경의경우최신버전기본지원 Linux 의경우 GCC 이상에서지원 OpenMP 명령어를통해컴파일러가자동으로병렬화 For Loop 를쉽게병렬화할수있고, 각 Core 가메모리를공유하기때문에병렬코딩이매우편함
68 SMP 한대의컴퓨터 Shared Memory Core0 Core0 Core0 CoreN-1 CoreN 각코어가모두하나의메인보드위에있기때문에모두같은메모리를사용특별히, 통신코딩을할필요가없음 OpenMP 코딩의편리함
69 OpenMP 개념 Fork Master Thread 병렬화영역 Join Fork 병렬화영역 Join
70 OpenMP 병렬화예약어들 omp_set_num_threads(16); 총 16개의 thread 사용설정 totaln=omp_get_num_threads; 전체병렬화개수파악 tid=omp_get_thread_num(); 각병렬프로세서번호인식 #pragma omp 지시어 #ifdef_openmp 순차프로그래밍에서도사용가능하도록프로그래밍 parallel l for critical private() shared() schedule()
71 OpenMP 예제 1 #include <stdio.h> #include <omp.h> int main (int argc, char *argv[]) { int nthreads, tid; omp_set_num_threads(4); #pragma omp parallel private(nthreads, tid) { tid = omp_get_thread_num(); nthreads = omp_get_num_threads(); printf(" Hello World from Thread %d of %d \n", tid, nthreads); } return 0; } 병렬화영역
72
73
74 OpenMP 병렬화방법 for(i=0; i<m; i++) { a[i] = b[i*n]*c[0]; for( j=1; j<n; j++) a[i] += b[i*n+j]*c[j]; } 자동병렬화 #include <omp.h> #pragma opm parallel for shared(m,n) private(i,j) for(i=0; i<m; i++) { a[i] = b[i*n]*c[0]; [0] for( j=1; j<n; j++) a[i] += b[i*n+j]*c[j]; }
75 #pragma omp parallel shared(fsum, N) private(tid,fsum_local,nnn) { NNN = 0; fsum_local = 0; tid = omp_get_thread_num(); printf("%d \t",omp_get_num_threads()); #pragma omp for for ( i=0; i< Ni Nsim ;i++ ) { xt1=s; RNG 병렬화코딩필요 xt2=s; for(m=0; m<path; m++) { xx1 = myrand()/(rand_max+1.0);if(xx1==0.0) xx1= ; xx2 = myrand()/(rand_max+1.0);if(xx2==0.0) xx2= ; normal1=sqrt(-2.0*log(xx1 ))*cos(2.0* *xx2 ); xt1= xt1 + r * xt1 * dt +v*xt1*sqrt(dt)*normal1; xt1sqrt(dt) } oprice=max(xt1-k,0); fsum_local =fsum_local+ oprice; //printf("%f",op); } #pragma omp barrier #pragma omp critical (update_sum) { fsum +=fsum_local; stop=clock(); printf("\n%d \t %20.17f \t %20.17f \n",tid,fsum, fsum_local) ; } } // end of OpenMP results = (double) 1/Nsim * exp(-1* r * tau)* fsum; stop=clock(); htime = 0.001*difftime(stop,start); //windows printf("\n%19.17f \t %19.17f %7.5f \n",results,results-bsp, htime) ; Loop 병렬화부분 결과 Reduction 부분 전체병렬화영역
76 수퍼컴퓨터 Tachyon OpenMP job batch scheduler 282% e063rhg]$ vi a.sh #!/bin/bash #$ -V #$ -cwd #$ -N openmp_job #$ -pe openmp 4 #$ -q small #$ -R yes #$ -wd /work01/e063rhg/ #$ -l h_rt=00:01: #$ -M my address #$ -m e export OMP_NUM_THREADS=4 /work02/e063rhg/omp.exe >result.txt
77 Job scheduler 에서대기중인사람들 예상실행시간 40 sec 의 job 을약 40 분기다려야함 Scheduler 조정을통해제일적게기다리는편
78 Tachyon idle core 현황 6 월 30 일부터현재까지계속 job 이 waiting 상태로, 수퍼컴퓨터사용의의미가없음 OpenMP, MPI test 불가
79 Job Schedule 실행된모습 ================================= Black-Scholes : elapsed time is
80 OpenMP 결과 1. 수퍼컴퓨터에서는 1~16 배까지 core 개수를늘리면 scailability 가증가 2. 유휴 CPU 가부족하여 scailability 를테스트하기어려웠음. 3. CUDAp, MATHp, WindowsPC 등에서 1~4 core 기반의 scailability 쉡게체크가능 4. 간단히 rand() 함수를이용한 loop 병렬화시오히려속도감소 memory bank conflict, shared static variable 문제
81 5. 수퍼컴퓨터를이용한 병렬 Monte Carlo Simulation II MPI 병렬화
82 Cluster 전체시스템 Network 하나의노드 하나의노드 Core0 CoreN Core0 CoreN Shared Memory Shared Memory 각노드에서각각프로그램을실행해줘야함 (mpirun) 각노드의메모리는서로공유하지않으므로서로통신해줘야함 MPI 코딩의복잡함
83 MPI 개념 MPIRUN MPI로병렬프로그래밍된실행명령을각각의 node에복사하여각각의노드가병렬명령을실행할수있도록지원함 MPI setting 에각각의 node 설정을해주어야함 : 관리의복잡성발생 각 Node는네트웍을통해연결되어있으므로, 서로메모리를공유하지않음. 각메모리는서로독립적으로작동하므로 PDE solving, Matrix 병렬화등에서는서로의메모리정보를서로통신을통해업데이트해줘야함 MPI 는병렬화보다는오히려통신프로그래밍을쉽게해준역할을함. OpenMP 와는다르게프로그래머가병렬화작업, 메모리공유를직접해줘야함 MPIEXEC, POE 등의 MPI Launcher 를통해실행해줘야한다. 전용서버의경우 scheduler 대신 plink 를활용하면유용하다.
84 MPI 예제 1 #include <stdio.h> #include "mpi.h int main(int argc, char *argv[]) { int rank, size; MPI_Init(&argc, &argv); MPI_Comm_rank(MPI_COMM_WORLD,&rank); MPI_Comm_size(MPI_COMM_WORLD,&size); printf("hello, world I am %d rd core of %d core system\n",rank,size); } MPI_Finalize(); return 0;
85 MPIexec 다음은 mpiexec 를통해 core 를 1 개, 2 개 4 개로확장시켰을때의실행결과를나타내고있다.
86 Job 분할방법 How do we divide job ( FOR LOOP)? ID=0 ID=1 ID=2 ID=3 ID=0 ID=1 ID=2 ID=3
87 Loop 분할방법들 단순분할 for (i = 0; i < Nsim/N; i++) {. } 1 3 순환분할 for (i = Tid; i < Nsim; i+= N) {. } Block 분할 블록 - 순환분할 2 i_start = Tid * (Nsim /N); i_end = i_start + (Nsim /N); if (Tid == (N-1)) i_end = N; for (i = i_start; i < i_end; i++) {. } 4 for (i = n1*block*myrank; i < n2; i+=nprocs*block) { } for (j = jid; j < min(ij+block-1); i+=n2n) {.
88 para_range(n1,n2,n3,n4,n5,n6) 함수 Para_range 함수는크게 3가지의병렬화방법중 Method 2의기법으로 For Loop를균등분할함 void para_range(int lowest, int highest, int nprocs, int myrank, int *start, int *end) { int wk1, wk2; wk1 = (highest - lowest + 1) / nprocs; wk2 = (highest - lowest + 1) % nprocs; *start = myrank * wk1 + lowest + ( (rank<wk2)? myrank : wk2); *end = *start + wk1-1; if(wk2 > rank) *end = *end + 1; } N ai () n1 1 i= 1 i= = ai () + n 2 ai () + + ai () i= n i nk 1 1 N = + Core 0 Core 1 Core k-1
89 MPI 예제 2 ( MPI 통신 ) #include <mpi.h> #include <stdio.h> #define n void para_range(int, int, int, int, int*, int*); int min(int, int); void main (int argc, char *argv[]){ int i, nprocs, myrank ; int ista, iend; double a[n], sum, tmp; MPI_Init(&argc, &argv); MPI_Comm_size(MPI_COMM_WORLD, &nprocs); MPI_Comm_rank(MPI_COMM_WORLD, &myrank); para_range(1, n, nprocs, myrank, &ista, &iend); for(i = ista-1; i<iend; i++) a[i] = i+1; sum = 0.0; 0; for(i = ista-1; i<iend; i++) sum = sum + a[i]; MPI_Reduce(&sum, &tmp, 1, MPI_DOUBLE, MPI_SUM, 0, MPI_COMM_WORLD); sum = tmp; if(myrank == 0) printf("sum = %f \n", sum); MPI_Finalize(); }
90 MPI 예제 3 Pi 계산 #include <math.h> #define n main(){ int i,istep,itotal[10],itemp; i i i double r, seed, pi, x, y, angle; pi = ; for(i=0;i<10;i++) itotal[i]=0; seed = 0.5; srand(seed); for(i=0; i<n; i++){ x = 0.0; y = 0.0; for(istep=0;istep<10;istep++){ r = (double)rand(); angle = 2.0*pi*r/32768 r/ ; x = x + cos(angle); y = y + sin(angle); } itemp = sqrt(x*x + y*y); itotal[itemp]=itotal[itemp]+1; t t ] } } for(i=0; i<10; i++){ printf(" %d :", i); printf("total=%d\n",itotal[i]); } #include <mpi.h> #include <stdio.h> #include <math.h> #define n void para_range(int, int, int, int, int*, int*); int min(int, int); main (int argc, char *argv[]){ int i, istep, itotal[10], iitotal[10], itemp; int ista, iend, nprocs, myrank; double r, seed, pi, x, y, angle; MPI_Init(&argc, &argv); MPI_Comm_size(MPI_COMM_WORLD, &nprocs); MPI_Comm_rank(MPI_COMM_WORLD, COMM &myrank); para_range(0, n-1, nprocs, myrank, &ista, &iend); pi = ; for(i=0; i<10; i++) itotal[i] = 0; seed = myrank; srand(seed); for(i=ista; i<=iend; i++){ x = 0.0; y = 0.0; for(istep=0; istep<10; istep++){ r = (double)rand(); angle = 2.0*pi*r/ ; x = x + cos(angle); y = y + sin(angle); } itemp = sqrt(x*x + y*y); itotal[itemp] = itotal[itemp] + 1; } MPI_Reduce(itotal, iitotal, 10, MPI_INT, MPI_SUM, 0, MPI_COMM_WORLD); for(i=0; i<10; i++){ printf(" %d :", i); printf(" total = %d\n",iitotal[i]); } MPI_Finalize(); }
91 MPI 예제 4 ( Full Path 유렵형 Vanilla Call 옵션 ) for ( i=0; i< Nsim ;i++ ) { xt1=s; xt2=s; for(m=0; m<path; m++) { xx1 = rand()/(rand_max+1.0);if(xx1==0.0) xx1= ; xx2 = rand()/(rand_max+1.0);if(xx2==0.0) xx2= ; normal1=sqrt(-2.0*log(xx1 ))*cos(2.0* *xx2 ); xt1= xt1 + r * xt1 * dt + v*xt1*sqrt(dt)*normal1; } oprice=max(xt1-k,0); fsum =fsum+ oprice; } results = (double) 1/Nsim * exp(-1* r * tau)* fsum; stop=clock(); htime = 0.001*difftime(stop,start); //windows printf("\n%19.17f \t %19.17f %7.5f \n",results,results-bsp, htime) ; Loop 분할필요 병렬 RNG 필요 multiseed method MPI reduce 필요
92 MPI 화코드 #include <mpi.h> #include <stdio.h> #include <math.h> #define n void para_range(int, int, int, int, int*, int*); int min(int, int); main (int argc, char *argv[]){ int i, m; int ista, iend, nprocs, myrank; double r, seed, pi, x, y, angle; Nsim = n; 금융관련변수설정은모두생략함 (single 코드와동일 ) 병렬화블록 MPI_Init(&argc, &argv); MPI_Comm_size(MPI_COMM_WORLD, &nprocs); MPI_Comm_rank(MPI_COMM_WORLD, &myrank); para_range(0, Nsim, nprocs, myrank, &ista, &iend); Multiseed 방법사용 seed = myrank; srand(seed); for ( i=ista; i< iend ;i++ ) { xt1=s; xt2=s; for(m=0; m<path; m++) 상황에따라추가적 RNG 코딩 { xx1 = rand()/(rand_max+1.0);if(xx1==0.0) xx1= ; Single code 그대로사용 xx2 = rand()/(rand_max+1.0);if(xx2==0.0) xx2= ; normal1=sqrt(-2.0*log(xx1 ))*cos(2.0* *xx2 ); xt1= xt1 + r * xt1 * dt + v*xt1*sqrt(dt)*normal1; } oprice=max(xt1-k,0); fsum_local =fsum_local+ oprice; } Core간데이터통신 MPI_Reduce(&fsum_local, &fsum, 1, MPI_DOUBLE, MPI_SUM, 0, MPI_COMM_WORLD); MPI_Finalize(); results = (double) 1/Nsim * exp(-1* r * tau)* fsum; printf(" Option Price : %23.17f " results); }
93 Tachyon : all node is full
94 MPI 결과 수퍼컴퓨터센터의 tachyon, nobel 서버모두 busy 연세대학교수학과 PDE 팀 4 node 8 core server kisti Hamel Cluster (5 년이상된 Cluster 로성능이많이떨어지만사용자적음 ) 에서테스트 Linear Scailability : CPU 개수와속도향상의선형성이보장됨 ( 단, 병렬 RNG 코딩을해줘야함.) 2. Monte Carlo Simulation 은병렬화의 Scailability 가매우좋은편임 N 개의 Core 사용시 1/N 으로계산시간단축효과, 1/sqrt(N) 의정확도향상 현재의정확도를유지하면서속도를향상시킴 : 1/N
95 수퍼컴퓨터를이용한몬테카를로병렬화 1. 계산전용서버는자체구축필요 (KISTI 의경우 Job schedule : 최소 30 분 ) 2. MPI의경우직접병렬코딩을하고, MPIRUN을실행해줘야하지만잘만들어진 single 코드가존재하는경우몬테카를로병렬화는어렵지않다. 3. 병렬화를통한속도향상 200초걸리는시뮬레이션문제의경우 2노드 32 core system 구축시 6.3초 0.5억원 8노드 128 core system 구축시 1.6초 2억원 + 알파 16노드 256 core system 구축시 0.8초예상됨 4억원 + 알파 32노드 512 core system 구축시 0.4초예상됨 8억원 + 알파 32 노드의사용시 MC 의편리함과 FDM 수준의속도를얻을수있음 Parallle Quasi MC 를사용할경우 8 노드정도로 FDM 수준의속도향상예상됨
96 대안적방법
97 대안적방법 PC 용 CPU 는계산위주이아닌범용으로개발됨 계산위주란? 빠른처리속도와더불어 CPU 내부의 On-chip 메모리가큼여러개의명령을동시에실행, ALU, FP 연산용모듈이많이내장 Intel 은내부메모리를줄인저가버전등등을출시 ( 가격경쟁을위해 ) 따라서, 계산에최적화된하드웨어를통한병렬화기법이최근 HPC 업계에주목받고있음. 대표적인예가 IBM Cell BE, Clearspeed, GPGPU 등임
98 대안 1 IBM BladeCenter QS20, QS21, QS22 Each Nodes has 3.2Ghz Cell BE processor One Cell BE has 8 SPE units for computing QS20 : 204 Gflops in SP, 21 Gflops in DP QS21 : 408 Gflops in SP, 42 Gflops in DP QS22 : 460 Gflops in SP, 217 Gflops in DP QS21 : 5 Tflops in SP/ 588Gflops in DP in for blade chassis Cell BE CPU ws developed for PS3 The initial target of Cell BE is entertainment it does not need DP, so Cell BE provides very limited double precision in QS20, QS21, but QS22 support DP with 5 times fast. IBM use this artitecture for building next generation world fastest super computer Roadrunner Project. 10X faster than normal CPU based cluster 하지만, 고가임. Cell BE SDK 개발자거의없음 - 금융뿐만아니라국내 CS 분야에도극소수 - 게임개발분야에극소수종사
99 대안 1 Mucury Cell Accelerator 2.8Ghz Cell BE processor in board One Cell BE has 8 SPE units for computing Cell BE processor at 2.8 GHz SP 180 GFLOPS in PCI Express accelerator card PCI Express x16 interface with raw data rate of 4 GB/s in each direction Gigabit Ethernet interface 1-GB XDR DRAM, 2 channels each, 512 MB 4 GB DDR2, 2 channels each, 2 GB 162W for each board
100 대안 2 ClearSpeed CSe620 Accelerate Board Acceleration Board for HPC Parallel l 192= 2* 96 PE 66 GFlops in Double Precision Support standard C/C++ SDK Using CSCN compiler 15W per each board cheaper than normal cluster solution 4 board system : 300Gflops 전력소모가작고, 비교적발열이적어 PC, 4U 서버등에쉽게장착가능
101 대안 2 CATs with ClearSpeed CS announce CATs in SC07 spec 12 CS board in 1U rack Power : total 550W 12* 192 Pes = massively parallel 1 DP Tflops 하나의서버에최대 12 개의카드장착가능
102 대안 3 Nvidia Tesla C870, D870, S870 Computing by GPU Nvidia 8800GTX chipset Parallel 128 Stream Processors in one chip 500 GFlops in Single Precision C870 : 1GPU in board D870 : 2 GPUs in case S870 : 4 GPUs in 1U chassis Today s 3 번째 Topic Support standard C/C++ SDK CUDA C870 system SP 500Gflops : 70 만원 C870 4board system SP 2Tflops : 300 만원 + PC 비용 S870 4GPUs system SP 2Tflops : 600 만원 + 서버비용 Cheap & powerful solution
103 6. 대안적방법론 I Clearspeed 가속보드를이용한병렬 Monte Carlo Simulation Co-work with 도우컴퓨팅
104 사용환경 연세현재 Clearspeed CSe620 보드 1 대를통해병렬시뮬레이션테스트중환경 : Windows XP + Visual Studio CSCN 컴파일러 + CSCN SDK C 언어의확장으로 mono, poly 라는병렬명령어셋을통한병렬화를해줘야함 Reference site : 옥스포드대학에서 LIBOR 쪽연구
105 상품종류 2Star Step Down( 원금비보장형 ) 기초자산 삼성전자 (005930) 보통주, SK 텔레콤 (017670) 보통주 청약기간 2008 년 01 월 24 일 ~ 01 월 24 일오후 1 시까지 청약단위 100 만원이상 10 만원단위 판매한도 10 억원 수익발생요건매 6개월기초자산의평가가격이기준가격의 90/90/85/85/80/80% 이상인 ( 종가기준 ) 경우 수익발생기회 만기상환포함총 6 회 최초기준가격결정일 2008 년 01 월 24 일만기평가일 2011 년 01 월 18 일 조기상환평가일 최초기준가격결정일이후매 6 개월 발행일 2008 년 01 월 24 일만기일 2011 년 01 월 24 일 (3 년만기 ) 조기상환수익률 8.1% X n 차 ( 연 16.2%) Knock In 배리어최초기준가격 X 60% 최대가능수익률 48.6% 최대가능손실률 -100% Simulation method Method Generating path Monte Carlo simulation G B M (Geometric Brownian Motion) normal distribution Method of generating normal distribution ib i Box-Muller method #of generating path 이상 ( 기준 개로작성 ) # of Trial (simulation Number) daily trial # of SIMD board Ui Using 1~2 2boards 본자료는 도우컴퓨팅에서제공한 ppt 입니다.
106 Development Aim & status 운영현황 Base 1. ELS (3년조기상환형6 month) 2. 2 Stock Step Down (redeemable Type) 3. knock in barrier 기초자산 60% 4. pricing engine : MC, FDM (SOR type) 5. 개별평가 Running time 50 sec 이상 6. 운영개발상품 50개 7. 사용자운영환경 Windows, C++, Excel 목표 1. 개별 pricing 시간단축 2. 운영개별상품 50개의pricing time 단축 3. 사용자환경유지 : develop platform: c++ 이용환경 :excel base 4. DBMS 를통한 data 중앙관리 5. ELS 2 stock step down 가속화 6. Hi five 형가속화 7. Single stock ELS 개발 8. 가속 Pricing 모델개발 (ASIAN option etc) 적정 pricing engine 선정 (5배이상 ~10 배속도증가 ) 6 sec ~ 3sec 이내 target instrument simulation method Cal. time Performance 2 stock step down MC (daily observe, # of path 10224) (out put :price, 4 Greek value) gamma 1, delta 1, 본자료는 도우컴퓨팅에서제공한 ppt 입니다.
107 1. 2 Stock Step Down 2. 2 Stock Hi-Five % 25 Speedup % Speedup CPU core 1 x CSX620 2 x CSX % Speedup % Speedup CPU core 1 x CSX620 2 x CSX620 1 CPU core 1 x CSX620 2 x CSX620 결과 초소요 3.5 초소요 1.82 초소요 1 CPU core 1 x CSX620 2 x CSX620 결과 초소요 초소요 초소요 13 배 25 배 22 배 44 배 3.0 GHz Intel Xeon 5130(Woodcrest) Dual core System Base 본자료는 도우컴퓨팅에서제공한 ppt 입니다.
108 Lookback Cliquet Option % Speedup % Speedup CPU core 1 x CSX620 2 x CSX620 1 CPU core 1 x CSX620 2 x CSX620 결과 45.1 초소요 3.24 초소요 1.82 초소요 3.0 GHz Intel Xeon 5130(Woodcrest) Dual core System Base 본자료는 도우컴퓨팅에서제공한 ppt 입니다.
109 target instrument simulation method calculation time performance Asian option (path # ) MC serial board board 64.4 배 Asian option (path # ) MC serial board board 85 배 European option MC serial 1 (path # ) board b board 배 look back cliquet option MC 45.1 serial 1 monthly observe, # of path board board 24 배 2 stock step down MC serial 1 (daily observe, # of path ) board 13.2 (out put :price 4 Greek value) board 25.4 배 2 stock Hive Five MC serial 1 (daily observe, # of path 96000) board (out put :price 4 Greek value) board 배 3.0 GHz Intel Xeon 5130(Woodcrest) Dual core System Base 본자료는 도우컴퓨팅에서제공한 ppt 입니다.
110 7 대안적방법론 II CUDA를이용한병렬몬테카를로시뮬레이션
111 CUDAp workstation at Yonsei Math-Finance Lab 계산용서버 : Fedora Linux + Intel Compiler + CUDA Tesla C870 3 개장착 : 이론상 SP 1.5Tflops in SP : 500 만원이하 Tesla D870 1 대추가도입예정 보조용워크스테이션 Windows XP + Visual Studio CUDA Tesla C870 1 개장착 : 이론상 SP 0.5Tflops in SP 비교 Kisti 수퍼컴퓨터 4 호기 : 전체 : DP 24Tflops : (40 억원이상 ), 하나의노드 : DP 0.1Tflops : 2 천만원이상
112 G80 Device in Tesla Inner Processors execute computing threads Thread Execution Manager issues threads 128 Thread Processors grouped into 16 Multiprocessors (SMs) Parallel Data Cache (Shared Memory) enables thread cooperation Host Input Assembler Thread Execution Manager Thread Processors Thread Processors Thread Processors Thread Processors Thread Processors Thread Processors Thread Processors Thread Processors Parallel Data Cache Parallel Data Cache Parallel Data Cache Parallel Data Cache Parallel Data Cache Parallel Data Cache Parallel Data Cache Parallel Data Cache Parallel Data Cache Parallel Data Cache Parallel Data Cache Parallel Data Cache Parallel Data Cache Parallel Data Cache Parallel Data Cache Parallel Data Cache Load/store Global Memory
113 G80 Device In Tesla H/W Device 3 Device 2 SM SM Cache Device SM Cache1 SM Device Cache 0 SP SP SP SP Shared SM Memory Cache Shared SM Memory Cache Shared SM Cache Shared SM SPMemory Cache Shared SMSP Cache SP SP Shared SM SP SP SPMemory Cache SP SP SFU SP SP SP SFU Cache Shared SP SP Shared SP SP SP SP SFU SP SP SP SFUMemory SP SP SP SP SFU SFU SP Shared SP SP SP SP SFU SFU Memory Shared Memory SM SM Cache SM Cache SM Cache Shared SM Memory Cache Shared SM Memory Cache Shared SM Cache SP Shared SM SPMemory Cache SP Shared SMSP Cache SP SP SP Shared SM SP SP SPMemory Cache SP SP SP SFU SP SP SP SFU Cache Shared Memory SP SP Shared SP SP SP SP SP SFU SP SP SP SFU Memory SP SP SP SP SP SFU SFU SP Shared SP SP SP SP SFU SFU Memory Shared Memory SP SP SP SP SFU SP SP SFU SP SP SFU SP SP SFU SP SP SP SP SP SFU SP SP SP SP SP SFU SP SP SP SP SP SFU SP SP SP SP SP SFU SP SP SP SP SP SP SP SFU SFU SP SP SP SP SP SP SP SFU SFU SP SP SP SP SP SP SP SFU SFU SP SP SP SP SP SP SP SFU SFU SP SP SP SFU SP SP SP SFU SP SP SP SFU SP SP SP SFU SP SP SP SP SFU SP SP SP SP SFU SP SP SP SP SFU SP SP SP SP SFU SP SP SP SP SP SP SP SFU SFU SP SP SP SP SP SP SP SFU SFU SP SP SP SP SP SP SP SFU SFU SP SP SP SP SP SP SP SFU SFU SP SFU SFU SFU SFU SP SP SP SP SFU SP SP SP SP SP SFU SP SP SP SP SP SFU SP SP SP SP SP SFU SP SP SP SP SP SFU SP SP SP SP SP SFU SP SP SP SP SP SFU SP SP SP SP SP SFU SP SP SP SFU SP SP SP SFU SP SP SP SFU SP SP SP SFU SP SP SP SP SP SP SP SP Global Memory SP SP SP SP SP SP SP SP SP SP SP SP Global Memory Global Memory Global Memory
114 SDK architecture Host Device Grid 1 Threads blocks for SMs Kernel Block Block 1 SM launch Waps of fthreads (0, 0) (1, 0) (2, 0) Block (2 0) Block (0, 1) Block (1, 1) Block (2, 1) Grid 2 Kernel 2 Block (1, 1) Thread (0, 0) Thread (1, 0) Thread (2, 0) Thread (3, 0) Thread (4, 0) Thread Thread Thread Thread Thread (0, 1) (1, 1) (2, 1) (3, 1) (4, 1) Thread (0, 2) Thread (1, 2) Thread (2, 2) Thread (3, 2) Thread (4, 2)
115 CUDA compiler
116 CUDA syntax Function_name <<<a, b, c>>>(variables ) CuMalloc(A,size) CuMemcpy(A,B,method) global function (variable) { } device function (variable) { } share variable; global variable;
117 CUDA algorithm example single void add_matrix ( float* a, float* b, float* c, int N ) { int index; for ( int i = 0; i < N; ++i ) for ( int j = 0; j < N; ++j ) { index = i + j*n; c[index] = a[index] + b[index]; } } int main() { add_matrix( a, b, c, N); } CUDA global add_matrix ( float* a, float* b, float* c, int N ) { int i = blockidx.x * blockdim.x + threadidx.x; int j = blockidx.y * blockdim.y + threadidx.y; int index = i + j*n; if ( i < N && j < N ) c[index] = a[index] + b[index]; } int main() { dim3 dimblock( blocksize, blocksize ); dim3 dimgrid( N/dimBlock.x, N/dimBlock.y ); add_matrix<<<dimgrid, dimblock>>>( a, b, c, N ); }
118 Single Precision vs. Double Precision Single Precision : 32bit double Precision : 64bit Error : 24 mantisa Error : 24 mantisa 10^-7 10^ Round-off errors in single precision (example in Knuth) ( [+] ) [+] = [+] = [+] ( [+] ) = [+] = Financial Monte Carlo simulation use math function of sqrt, ln, exp, sin, cos or numerical approximation for transformation and cdf Random number generator use divide In this situation, with 10^-7 rounding we will generate same r.v. in different values and lose the accuracy But, in Financial Industry, they allow 1BP in Hedge Vol : that means they allow 10^-4 errors in price. If we can control the errors 10^-5 in single precision in MC. (not FDM, FEM)
119 Implementation ti for pmc on CUDA
120 Massively pmc (H/W) 다양한문제를고민해줘야함 RNG 자체의분석필요 (SMT19937 분석 ) 비금융적문제임 Parallel H/W 에관련된문제가대부분 Knuth, the art of computer programming
121 CUDA 방법 I -- PMT19937 Core 1 y0,0 y0, i i+1 Core 0 y0,2 y1,2 Core 2 y1,0 y127,0 y1,11 y127,1 y127,2 i+m i+m Global Memory Core 127 Global Memory
122 CUDA 방법 II -- PMT19937 각 16 Block 은 Multi Seed 이용 y0,0 y1,0 y0,1 y127,0 y1,11 y0,2 y127,1 y1,2 y127, cores cores i i+1 i+m i+m+ 1 cores cores i i+1 i+m i+m Shared Memory 623 Shared Memory Global Memory
123 CUDA 방법 III -- parallel SMT 각 128 SPs 가 Multi Seed 이용 i i+1 i i+1 cores i+m i+m+ 1 cores i+m i+m Global Memory 623 Global Memory
124 New approach for massively parallel SPMD 1. Job split method Simulate Option Price in Outer Loop. each simulation, call RNG it has big overheads of function call Wall Clock Time >> Simulation Time / (# of cores) 2. Pre-generation method generate full # of U R.V. for simulation Transfer U R.V. to N R.V. each simulation, they use R.V.s which were already generated. limit of memory bandwidth : 60GB/s : needs sec for 1.5GB limit of memory size : 2억개의 R.V.s /each device Wall Clock Time = Simulation Time / (# of cores) + Memcpy Time 3. Avoid Round-off Errors 1 M 1 Nk rτ rτ E[ e [ ST K] ] e [ ST K] i M k N k i + +
125 New approach for massively parallel SPMD 4. Mixed Precision Method (float-float approach) emulate double precision with two single precision operation DP is 4~10 times slower than SP. DP RNGs much more slower than SP RNGs - same period but : 24bit or 48bit mantisa in SP, 54bit mantisa in DP -heavy function cto call of ln,,s sin,,cos in Box-muller ue 5. Mixed Precision Method (GPU-CPU approach) use 64bit CPU FP in DP computation It need comuniticating between Host and Device. DP in CPU is slower than DP in GPU Tt is easy to imply 6. Fixed-Point Method convert float point data to integer data. ALU is faster than FP Fixed Point Method is useful in LCG, but is not suitable in Box-muller
126 New approach for massively parallel SPMD 7. Inter-correlation between parallel cores split wthout careful considering, the inter-correlation between parallel cores occure. To avoid this, we need to parallelize with considering algorithms of RNG for different RNGs, we apply different method of parallelizations 8. Overlapping in splitted random sequence Pseudo RNGs has limited period such as 2^31, etc. In massively yparallel generating, g each stream of random number may overlapp with each others. To avoid this, use long period RNGs or dynamic creation method.
127 Benchmark for RNGs with CUDA Rand48() + Memcpy(DtoH) Size: random numbers CPU : 최신 AMD 페놈 2.5Ghz GPU : Tesla C870 CPU rand48 time : ms Samples per second: E+07 GPU rand48 time : ms Samples per second: E+09 속도향상 : 최대 113 X Thread 에따라 80X 정도 Copying random GPU data to CPU time : ms 127
128 Benchmark for RNGs with CUDA MT Box-Muller + Memcpy Size: random numbers CPU MT19937 RN generation time: ms Samples per second: E+07 Size: random numbers GPU MT19937 RN generation time : ms Samples per second: E+08 속도향상 : 7.3 X 원래 MT 알고리즘이 LCG 보다속도빠름 LCG 2260ms vs. MT 1460ms 그런데가속화성능은 LCG가더좋음 LCG 113X vs. MT 24X LCG 20ms vs. 48ms Generated samples : RandomGPU() time : ms Samples per second: E+09 속도향상 : 24.7 X 128
129 Occupacy for thread & Performence <<<16,256>>> 129
130 Performance from Operation Cycles & latency Operation type conversion : 4 cycle float add/mul/mad : 4 cycle floating div : 36 cycle integer add, bit operation : 4 cycle integer comare, min, max : 4 cycle integer mul : 16 cycle Memory 4 cycles for issuing a read from global memory 4 cycles for issuing a write to shared memory 400~600 cycle for reading a float from global memory Need thread schedule strategy
131 Benchmark for European Vanilla GPU MT19937 RN generation time : ms Samples per second: E+08 GPU BoxMuller transformation time : ms Samples per second : E+09 Copying random GPU data to CPU time : ms GPU Monte-Carlo simulation... Total GPU time : ms Options per second : E+01 Total : ms = 0.8 sec Non-full path generation 131
132 Implementation on ELS pricing and hedging 상품설명서 : 삼성증권제 1909 호주식연계증권 3 년만기 2 star : POSCO 일반주, S-Oil 12 chance : 디지털옵션 Double Barrier Down barrier : 장중체크 ( 둘중하나라도하락한계 ) Up barrier : 매일종가체크 ( 두개다상승한계 ) Step-down : 없음 지급 : 조기상환시 +2 영업일
133
134 Excel 화면
135 Excel/VBA Pseudo code for ELS (single) Parameter 입력 Loop 10만번 ~ 50만번 XT simulation 실행 Boxmuller, RNG(SMT19937) ELS pricing Routine IF문을통해조기사환, 만기조건고려조기상환시시뮬레이션정지 평균값을구함 결과출력
136 CPU single 실행속도 엑셀 : 50만번시뮬레이션 (Pricing만) : 약 4~5분 ( 조기상환되었는데도느림 ) Excel이실행되는 CPU는성능이안좋음. 시스템 : Intel Core2Duo 2.0Ghz dual core (but single using) ( 장중모니터링 6회실시 ) 즉 50만번시뮬레이션시총사용 RNG 개수 :500000*250*3*6*2 = 개 : 45*10^8 조기상환이되도계속 RNG 를생성시킨경우 ( 비교를위해 ) C MT19937 이용시최적화최적화중 RNG BM 변환 CPU 53 초, GPU1 7.3 초, GPU2 2.1 초 CPU 20 초, GPU1 3.6 초, GPU2 1.1 초 Copy CPU 0 초, GPU 초, GPU2 6.2 초 MC CPU 18 초, GPU1 1.2 초, GPU2 0.4 초 총 90 초, 30 초 (2.5 배 ) 9.8 초 (9 배 ) 7.1 초 (12 배 ) C 언어 :AMD 페놈 2 5Ghz GPU : Tesla C870
137 CPU single 실행속도 대부분 1-2 회차에서조기상환됨 총사용 RNG 개수 : *120*6*2 = 약 개 전체계산량의 1/6 로감소 : 이론상 CPU 에서 15 sec 가능?? 불가능함. 원인 : Function call 에의한오버헤드 (IF 문사용 ) 로인한속도증가어려움 병렬처리시에도비슷한문제발생, 더욱복잡한문제들발생가능성있음.
138 VBA -> C/C++ 변환 Excel 의 networkdays 함수를직접구현해주어야함. ( 어려운점 : 실무경험이부족하여 1일이상소요아직도완벽하지않음 ) 배열을사용시언어의특징고려해야함 variable(i) variable[i] Option base 1 을 option base 0 로바꿔줘야함 For 문, if 문의형식을맞춰줘야함. 특히 bracket { } 에서오류많이발생특히연산자 &&,,!, == 오류주의 대소문자오류체크 (C 언어는변수명과함수명의대소문자에민감함 ) C 언어 DLL 을이용한 excel llink 도사용가능
139 C 언어 Single -> CUDA 병렬코딩 병렬 MC 아이디어를사용 CPU 영역과 GPU 영역을정확히구분해줘야함 하드웨어및 CUDA 자체의특징을고려해줘야함. thread 고민 memory 고민
140 Thread control on SPMD algorithms How do we divide job ( FOR LOOP)? ID=0 ID=1 ID=2 ID=3 ID=0 ID=1 ID=2 ID=3
141 Thread control on SPMD algorithms 1 Global ELS (parameters){ Tid= blockidx.x*blockdim.x + threadidx.x; Global ELS (parameters){ N=blockDim.x *threaddim; 3 Tid= blockidx.x*blockdim.x kdi + threadidx.x; for (i = 0; i < Nsim/N; i++) { N=blockDim.x *threaddim;. for (i= Tid; i < Nsim; i+= N) { }. } } } 2 1,3 method is good Global ELS (parameters){ Tid= blockidx.x*blockdim.x + threadidx.x; N=blockDim.x *threaddim; int rem = Nsim % N; i_start = Tid * (Nsim /N); i_end = i_start + (Nsim /N); if (Tid == (N-1)) i_end = N; } for (i = i_start; i < i_end; i++) {. } 3 method is recommanded
142 CUDA 고급메모리관리 CUDA의제한사항 global, device 함수내부에서는 Pointer 는 global 메모리영역만지정가능 global 함수는무조건 void 함수임. static 변수의선언불가 사용방법 global 함수밖에서 static 변수를미리정의해줘야함. global 에서는메모리를참조해야함. Global l memory 의포인터주소를참조 사용예 ) Main(){ device static mt[624*n]; global memory 에할당됨 device shared static mti,bmused,y1,y2,r1,r2; device static seed; MT19937 <<<32,8>>>(void) } kernel MT19937(){ Mt[block*BlockID+ 0]=seed; }
143 CUDA 고급메모리관리 shared pmt19937 구현시 Nvidia G80 chip 스펙 16 KB on chip shared memory : bytes per Block (1 cycle) on device global memory : 512~1.5 GB (200 cycle) Shared Memory 가상당한고가임 필요한 Static Variables 1 개의 SMT19937 처리시필요한변수들배열 : MT[624] bytes 변수 : mti, bmused, y1,y2,r1,r2 192 bytes 20 KB 배열만으로 H/W 제공 shared memory size 보다많이필요 Shared memory(fast) 가아닌 Global memory(slow) 사용 mti,bmused, y1,y2,r1,r2 등은 shared memory 사용가능 Global memory 사용에의한 Bottleneck 발생 5 배이상속도저하
144 CUDA 차세대버전에서필요한 Memory Size 차세대 Nvidia H/W 에서의필요 shared memory size 1 차 byte per Block 지원시고속 shared pmt19937 구현가능 shared static mt[624]; shared static mti,bmused,y1,y2,r1,r2; device static seed; 차세대 GPU 에서 Global Memory 를 DDR5 로제공하여 bandwidth 를높이는경우에도추가적인속도향상기대됨 2 차 byte per Block 지원시고속 fully pmt19937 구현가능 device static mt[624*n]; shared static mti,bmused,y1,y2,r1,r2; device static seed;
145 Case I Algorithm for ELS Parameter 입력 Loop 병렬화 RNG(PMT19937) -- shared / global memory version Box Muller 실행 Loop 병렬화 XT simulation 실행 <- 만들어진 RNG 사용함 ELS pricing i Routine IF문을통해조기사환, 만기조건고려평균값을구함결과출력
146 Case I CUDA 구조 템플릿 모듈화 Main(){ Parameter & memory copy; device boxmuller(){ ELS_bodyGPU<<<A,B>>>(); } get results; device MT19937(){ Print results; } } void ymalloc() { global ELS_bodyGPU(){ } ELS_kernel(); void yhtod() { } } void ydtoh() { device ELS_singleGPU(){ } Option pricing algorithm; void ody ytstart() { } }
147 Case I Pseuco code for CUDA ELS Main(){ cudamalloc((void**) &MTd, 624*sizeof(float)); cudamalloc((void**) &a, 1024*1024*2*sizeof(float)); Dim3 DimGrid(); Dim3 DimBlock(); Random_GPU <<<DimGrid,DimBlock>>> (parameters); Boxmuller_GPU <<<DimGrid,DimBlock>>> (parameters); ELS <<<DimGrid,DimBlock>>> (parameters); sum( option[k] ) /N; //N is 128 } Global ELS (parameters){ Tid= blockidx.x*blockdim.x + threadidx.x; N=blockDim.x *threaddim; For( I<0, I< Nsim/N;I++){ For(j<0,j<Totalday){ For(k=0;k<monitor;k++){ Norm1=a[N*i+ blockidx.x*blockdim.x + threadidx.x]; Norm2= a[n*(i+n)+ blockidx.x*blockdim.x + threadidx.x]; Xt1(I)= Xt1+MuT*dt + SigmaT*Norm1 Xt2(I)= Xt1+MuT*dt + SigmaT*Norm2 if (Xt1(I) <DB1 and Xt2(I) <=DB2 ) down_flag=1; } if (Xt1(I) >DB1 and Xt2(I) >=DB2 ) up_flag=1; if(j=pre1){} if(j=pre2){} } option = ; sum = sum+option; option = 1/(Nsim/N)*sum; Return option[tid]; } device float Box_Muller( float a1, float a2){ r-=sqrt(-2.0f *logf(u1)); Float phi = 2*PI*u2; a1=r* cosf(phi); a2=r* sinf(phi); } device float BoxMuller_GPU(){ Return Box_Muller( a[n*i+tid], a[n*(i+1)+tid ); } device random_gpu(){ //Use static variables for each threads Algorithms for MT RNG a[k*i+tid]=y; //K=2N }
148 Case I 분석 Random Number Generation 이대부분 ELS pricing 의계산시간을차지 장점 CUDA 를이용한가장빠른 parallel RNG 생성기법임함수 call 에의한오버헤드발생이거의없음 단점미리 RNG 를생성하기때문에 Memory Size 의제약을받음 RNG 를 Global Memory 에생성후 Xt 생성시 Global Memory 에서불러와야하기때문에계속적인 Memory bottle neck 발생 Critical한단점조기상환의경우미리만들어놓은 RNG 를사용할필요없음조기상환형문제해결을위한방법을고민해야함 조기상환형의경우속도향상을기대하기어려움 ( 현재 ) 조기상환형상품을 Case I의알고리즘으로구축시 GPU를사용할필요가없음 조기상환일별 RNG 를재추출하는방법으로속도향상기대 ( 코딩이복잡해짐 )
149 Case II Algorithm for ELS Parameter 입력 Loop 병렬화 XT simulation 실행 Boxmuller, RNG(parallel SMT19937) ELS pricing Routine IF문을통해조기사환, 만기조건고려 평균값을구함 결과출력
150 Case II Pseuco code for CUDA ELS Main(){ cudamalloc((void**) &MTd, 624*sizeof(float)); Dim3 DimGrid(); id() Dim3 DimBlock(); ELS_body <<<DimGrid,DimBlock>>> (parameters); sum( option[k] ) /N; //N is 128 } global ELS_ body(parameters){ Tid= blockidx.x*blockdim.x + threadidx.x; N=blockDim.x *GridDim; Initialize(); ELS_ kernel(parameters); } device ELS_ kernel(parameters){ For( I<0, I< Nsim/N;I++){ For(j<0,j<Totalday){ For(k=0;k<monitor;k++){ Norm1(i)=Box_Muller(); Norm2(I)=Box_Muller(); Xt1(I)= Xt1+MuT*dt + SigmaT*Norm1 Xt2(I)= Xt1+MuT*dt + SigmaT*Norm2 if (Xt1(I) <DB1 and Xt2(I) <=DB2 ) down_flag=1; } if (Xt1(I) >DB1 and Xt2(I) >=DB2 ) up_flag=1; if(j=pre1){} if(j=pre2){} } option = ; sum = sum+option; option = 1/(Nsim/N)*sum; Return option[tid]; } device Initialize(){ Initialize DC of MT19937 } device float Box_Muller(){ U1= MyRand();U2= MyRand(); If( used =1){ return} else {return } } SPDM1 방법론사용 device float MyRand(){ Return MT19937()/ ; } device float MT19937(){ //Use static variables for each threads Algorithms for MT RNG Return y; }
151 Case II single 코드의재사용 Main(){ cudamalloc((void**) &MTd, 624*sizeof(float)); Dim3 DimGrid(); id() Dim3 DimBlock(); ELS_body <<<DimGrid,DimBlock>>> (parameters); sum( option[k] ) /N; //N is 128 } global ELS_ body(parameters){ Tid= blockidx.x*blockdim.x + threadidx.x; N=blockDim.x *GridDim; Initialize(); ELS_ kernel(parameters); } device ELS_ kernel(parameters){ For( I<0, I< Nsim/N;I++){ For(j<0,j<Totalday){ For(k=0;k<monitor;k++){ Norm1(i)=Box_Muller(); Norm2(I)=Box_Muller(); Xt1(I)= Xt1+MuT*dt + SigmaT*Norm1 Xt2(I)= Xt1+MuT*dt + SigmaT*Norm2 if (Xt1(I) <DB1 and Xt2(I) <=DB2 ) down_flag=1; } if (Xt1(I) >DB1 and Xt2(I) >=DB2 ) up_flag=1; if(j=pre1){} if(j=pre2){} } option = ; sum = sum+option; option = 1/(Nsim/N)*sum; Return option[tid]; } device Initialize(){ Initialize DC of MT19937 } device float Box_Muller(){ U1= MyRand();U2= MyRand(); If( used =1){ return} else {return } } Template 과모듈이용시적색은부분만코딩해주면됨 Single code와동일한구조 device float MyRand(){ Return MT19937()/ ; } device float MT19937(){ //Use static variables for each threads Algorithms for MT RNG Return y; }
152 Case II 분석 장점 RNG 저장에메모리를사용하지않아이론상최대주기까지 RNG 생성가능조기상환시더이상 RNG를생성안함 Single Program 알고리즘을거의수정하지않고사용할수있음 모듈화가능 단점하나의코어에서 SMT 를돌리기위해필요한메모리용량이큼 Dynamic Creation 을통해균등분할해줘야함 고려할점고난위도 thread 컨트롤이필요 ( 모듈제작시 ) (CUDA 의자동 thread 생성기능이오히려속도저하를불러올수있음 ) Kernel 수준의 SMT 코딩필요, Global 함수에서통합관리 We need static variables but cuda do not support!!!
153 Case II 분석 진행상황 - 현재작업진행중 ( 디버그중 ) : 현재전체코드 491 line 모듈화작업을병행하다보니코드길이가길어짐 SPMD 1 방법을이용했음 ( 모듈화용이 ) GPU 에서 single code 를실행시켰을경우 CPU 대비 배느림이론상하나의보드에서약 3-40배정도성능향상기대됨현재코드에서약 12배가속됨 현재코드전체를변경할예정 SPMD 2 방법을이용하고 Memory 공유시 SPMD1 에비해 4 배속도향상기대됨 이외에몇가지속도향상기법이존재대부분메모리, thread 관리기법임.
154 왜 128 개의 SP 를쓰는데 128 배가안나오지? 이론상 128 개의 SP 가 128 개의 SFU 를가지고있지않고 32 개의 SFU 만가짐. GPU : 500Gflops, 최고성능 CPU : 40 Gflops : 약 40배차이일반성능 CPU 5 Gflops : 약 100 배차이 일반 CPU 1core 와 GPU 전체와비교하면 100 배정도성능차이가남 GPU 의 clock speed 가 CPU 의 clock speed 보다떨어지기때문에 GPU 의 1 개의 SP 와 CPU 1 개의 Core 를비교하면 CPU core 1 개의성능이더좋음 따라서 GPU 의 1 개 core 대비 SP 의성능 0.4~0.8 * 128 = 약 40~80 배정도성능향상효과가있음. 최초출시되었을때 CPU 대비 100 배속도상향이가능했지만, 현재는 40 배정도향상시키면최적코드로생각됨 multigpu 이용시 N 배의 scailability 보장함 (MC 방법론의경우 )
155 결론 Tesla C870 을이용하여 2sec 안에 ELS price 계산가능? 즉, 100 배이상속도향상가능? C870 하나의보드이용시 병렬화시 overlapping, cyclic 문제가발생할수있는 LCG 를이용시 RNG 생성시 112 배빨라짐 전체프로세스에서는 80 배향상됨 ( 업무적으로쓰기에는부적합할것으로생각됨.) MT19937 이용시, 현재 12 배정도가속됨. ( 최적화안되었음, 계속적인연구중 ) 조기종료를고려할경우에도 CPU 조기종료대비약 12 배정도 ( 약간씩오차있음 ) 빠름
156 결론 CUDA 를이용한 MC 병렬화 (MT19937 이용시 ) 1. 현재 12 배, 좀더최적화하면 ELS pricing 속도약 20 배향상예상 - 1개의보드장착 200sec sec ( 현재 ) - 1개의보드장착 200sec sec ( 최적화중 ) 2. multigpu 시스템연구예정 - 4개의보드장착된 S870 1대이용 200sec 2.50 sec ( 예상 ) 80배 - 4 개의보드장착된 S870 2 대이용 200sec 1.25 sec ( 예상 ) 160 배 3. shared memory size 의제한으로고속화불가 - block 당 2.7 KB 가능하다면약 40 배속도향상 200sec 4.00 sec ( 예상 ) LCG48 이용시 1 개의보드에서 80 배성능향상보장
157 연구계획
158 향후전망 (CUDA 를이용한금융 ) 1X 90.0sec CPU 사용 최신 3GHz CPU 사용 80X 1.1sec 300X 0.3sec 총 128 SP 사용 총 512 SP 사용 C870 1 개사용 C870 4 개사용 = S870 1 대사용 CUDA적용 ( 최적화필요, MT607) multigpu (pthread, openmp) 적용차세대보드적용 500X 0.2sec 1000X 0.09 sec 1500X 006sec 0.06 총 960 SP 사용 C 개사용 = S 대사용 multigpu (MPI) 적용 총 1920 SP 사용 C 개사용 = S 대사용 MT19937 필요 : 속도감소예상됨 총 3840 SP 사용 C 개사용 = S1070 4대사용 3000X 0.03 sec 총 3840 SP 사용 C 개사용 = S1070 8대사용 ( 구축시 H/W 2억원정도예상됨 ) 64X 8 node CPU cluster 비용보다저렴성능 : 60배차이 현재 : 100개상품을 9000sec = 2.5시간에계산함곧실현될미래 : 100개상품을 2sec 만에계산함
159 Further Research II CATs system & IBM Cell Nvidia CUDA system 총 128 SP 사용 Clearspeed CATs system 총 198 PE 사용 IBM QS system 총 8 SPE 사용 보드 4 개사용 총 512 SP 사용 보드 4 개사용 총 792 PE 사용 총 16 SPE 사용 차세대보드 4 개사용 총 1920 SP 사용 12 개보드사용 총 2376 PE 사용 총 224 SPE 사용 1000 배성능향상가능 200 배성능향상가능
160 The End 경청해주셔서감사합니다. 연세대수학과박사과정유현곤 yhgon@yonsei.ac.kr
<4D F736F F F696E74202D20C0AFC7F6B0EF2DBFF93131C0CF2DC3D6C1BEBABBC0D32E BC8A3C8AF20B8F0B5E55D>
수퍼컴퓨터를이용한병렬몬 테카를로시뮬레이션 유현곤 (Hyun-GonRyu) Dept. of Mathematics Yonsei Univ. Email : yhgon@yonsei ac kr Email : yhgon@yonsei.ac.kr 2008 년 7 월 11 일금요일 목차 1. 기초금융공학, 몬테카를로시뮬레이션 2. 병렬컴퓨팅이란? 3. 병렬몬테카를로시뮬레이션
More information6주차.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 informationMicrosoft 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 informationPowerPoint 프레젠테이션
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 informationMicrosoft PowerPoint - eSlim SV5-2510 [080116]
Innovation for Total Solution Provider!! eslim SV5-2510 Opteron Server 2008. 03 ESLIM KOREA INC. 1. 제 품 개 요 eslim SV5-2510 Server Quad-Core and Dual-Core Opteron 2000 Series 6 internal HDD bays for SAS
More informationMicrosoft PowerPoint - eSlim SV5-2410 [20080402]
Innovation for Total Solution Provider!! eslim SV5-2410 Opteron Server 2008. 3 ESLIM KOREA INC. 1. 제 품 개 요 eslim SV5-2410 Server Quad-Core and Dual-Core Opteron 2000 Series Max. 4 Disk Bays for SAS and
More informationexample 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 informationInteg
HP Integrity HP Chipset Itanium 2(Processor 9100) HP Integrity HP, Itanium. HP Integrity Blade BL860c HP Integrity Blade BL870c HP Integrity rx2660 HP Integrity rx3600 HP Integrity rx6600 2 HP Integrity
More information김기남_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 informationsolution 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강의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<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歯엑셀모델링
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기타자료.PDF
< > 1 1 2 1 21 1 22 2 221 2 222 3 223 4 3 5 31 5 311 (netting)5 312 (matching) 5 313 (leading) (lagging)6 314 6 32 6 321 7 322 8 323 13 324 19 325 20 326 20 327 20 33 21 331 (ALM)21 332 VaR(Value at Risk)
More information2011 PLSI 병렬컴퓨팅경진대회문제 01. 대학원팀 02. 학부팀 - 경진내용 - 경진환경 주어진순차코드를병렬화하여성능향상도 ( 획득점수 ) 를측정 점수 = ( 순차코드수행시간 ) / ( 병렬화코드수행시간 ) 프로그래밍언어 : C, Fortran 순차코드는 50 라
2011 PLSI 병렬컴퓨팅경진대회문제 01. 대학원팀 02. 학부팀 - 경진내용 - 경진환경 주어진순차코드를병렬화하여성능향상도 ( 획득점수 ) 를측정 점수 = ( 순차코드수행시간 ) / ( 병렬화코드수행시간 ) 프로그래밍언어 : C, Fortran 순차코드는 50 라인내외로작성하여제공됨 참가자들은컴파일러 (intel, gnu, pgi) 선택가능 시간제한 6
More informationCUDA Programming Tutorial 2 - Memory Management – Matrix Transpose
CUDA Programming Tutorial 2 Memory Management Matrix Transpose Sungjoo Ha April 20th, 2017 Sungjoo Ha 1 / 29 Memory Management 병렬연산장치를활용하기위해하드웨어구조의이해를바탕에둔메모리활용이필요 CUDA 프로그래밍을하며알아야하는두가지메모리특성을소개 전치행렬계산을예제로
More informationMicrosoft PowerPoint - [2009] 02.pptx
원시데이터유형과연산 원시데이터유형과연산 원시데이터유형과연산 숫자데이터유형 - 숫자데이터유형 원시데이터유형과연산 표준입출력함수 - printf 문 가장기본적인출력함수. (stdio.h) 문법 ) printf( Test printf. a = %d \n, a); printf( %d, %f, %c \n, a, b, c); #include #include
More informationTEL:02)861-1175, FAX:02)861-1176 , REAL-TIME,, ( ) CUSTOMER. CUSTOMER REAL TIME CUSTOMER D/B RF HANDY TEMINAL RF, RF (AP-3020) : LAN-S (N-1000) : LAN (TCP/IP) RF (PPT-2740) : RF (,RF ) : (CL-201)
More informationC 프로그래밍 언어 입문 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 informationfprintf(fp, "clf; clear; clc; \n"); fprintf(fp, "x = linspace(0, %d, %d)\n ", L, N); fprintf(fp, "U = [ "); for (i = 0; i <= (N - 1) ; i++) for (j = 0
병렬계산을이용한열방정식풀기. 1. 처음 병렬계산을하기전에 C 언어를이용하여명시적유한차분법으로하나의열방정식을풀어본 다. 먼저 C 로열방정식을이해한다음초기조건만다르게하여클러스터로여러개의열방 정식을풀어보자. 2. C 를이용한명시적유한차분법으로열방적식풀기 열방정식을풀기위한자세한이론은앞서다룬 Finite-Difference method 을보기로하고 바로식 (1.10)
More informationPCServerMgmt7
Web Windows NT/2000 Server DP&NM Lab 1 Contents 2 Windows NT Service Provider Management Application Web UI 3 . PC,, Client/Server Network 4 (1),,, PC Mainframe PC Backbone Server TCP/IP DCS PLC Network
More informationMicrosoft 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 informationMicrosoft PowerPoint - chap01-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 학습목표 프로그래밍의 기본 개념을
More information슬라이드 1
-Part3- 제 4 장동적메모리할당과가변인 자 학습목차 4.1 동적메모리할당 4.1 동적메모리할당 4.1 동적메모리할당 배울내용 1 프로세스의메모리공간 2 동적메모리할당의필요성 4.1 동적메모리할당 (1/6) 프로세스의메모리구조 코드영역 : 프로그램실행코드, 함수들이저장되는영역 스택영역 : 매개변수, 지역변수, 중괄호 ( 블록 ) 내부에정의된변수들이저장되는영역
More informationManufacturing6
σ6 Six Sigma, it makes Better & Competitive - - 200138 : KOREA SiGMA MANAGEMENT C G Page 2 Function Method Measurement ( / Input Input : Man / Machine Man Machine Machine Man / Measurement Man Measurement
More informationMAX+plus II Getting Started - 무작정따라하기
무작정 따라하기 2001 10 4 / Version 20-2 0 MAX+plus II Digital, Schematic Capture MAX+plus II, IC, CPLD FPGA (Logic) ALTERA PLD FLEX10K Series EPF10K10QC208-4 MAX+plus II Project, Schematic, Design Compilation,
More informationC++-¿Ïº®Çؼ³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유한차분법을 이용한 다중 기초자산 주가연계증권 가격결정
유한차분법을 이용한 다중 기초자산 주가연계증권 가격결정 이인범 *, 장우진 ** * 서울대학교 산업공학과 석사과정, 서울시 관악구 대학동 서울대학교 공과대학 39-315 **서울대학교 산업공학과 부교수, 서울시 관악구 대학동 서울대학교 공과대학 39-305 Abstract 주가연계증권은 국내에서 발행되는 대표적인 주식 연계 구조화 증권으로 2003 년부터 발행되기
More informationSlide 1
Clock Jitter Effect for Testing Data Converters Jin-Soo Ko Teradyne 2007. 6. 29. 1 Contents Noise Sources of Testing Converter Calculation of SNR with Clock Jitter Minimum Clock Jitter for Testing N bit
More information<4D F736F F D20C5EBC7D5C7D8BCAEBDC3BDBAC5DB5F D2BC0C720424D54B0E1B0FABAB8B0EDBCAD2E646F63>
통합해석시스템기반 STARCCM+ 의병렬계산성능 BMT 결과보고서 클루닉스 본자료는 클루닉스에서 CAE 해석 S/W(STARCCM+) 의병렬처리성능을측정한 BMT 결과보고서입니다. BMT 환경 : GridCenter-CAP, GridCenter-HPC BMT S/W : STARCCM+ BMT 진행 : 클루닉스 BMT 일자 : 2009년 08월 12일 ~2009년
More informationC# 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 informationC 언어 프로그래밊 과제 풀이
과제풀이 (1) 홀수 / 짝수판정 (1) /* 20094123 홍길동 20100324 */ /* even_or_odd.c */ /* 정수를입력받아홀수인지짝수인지판정하는프로그램 */ int number; printf(" 정수를입력하시오 => "); scanf("%d", &number); 확인 주석문 가필요한이유 printf 와 scanf 쌍
More information04-다시_고속철도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 information08이규형_ok.hwp
(JBE Vol. 18, No. 2, March 2013) (Regular Paper) 18 2, 2013 3 (JBE Vol. 18, No. 2, March 2013) http://dx.doi.org/10.5909/jbe.2013.18.2.204 ISSN 2287-9137 (Online) ISSN 1226-7953 (Print) DVB-T GPU FFT a),
More informationMicrosoft PowerPoint - 발표_090513_IBM세미나_IPTV_디디오넷_완료.ppt
신후랑 팀장, 디디오넷 (010-8752-4952, hrshin@dideonet.com) 05/20/2009 BIZ in a box - Solution for Enterprise IPTV 2 UNIX vs. x86 Non-x86 UNIX 2008 2007 0% Y/Y Total x86 2008 2007-25.3% Y/Y 0 200 400 600 800 3 Why
More information02 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 informationpublic key private key Encryption Algorithm Decryption Algorithm 1
public key private key Encryption Algorithm Decryption Algorithm 1 One-Way Function ( ) A function which is easy to compute in one direction, but difficult to invert - given x, y = f(x) is easy - given
More informationthesis-shk
DPNM Lab, GSIT, POSTECH Email: shk@postech.ac.kr 1 2 (1) Internet World-Wide Web Web traffic Peak periods off-peak periods peak periods off-peak periods 3 (2) off-peak peak Web caching network traffic
More informationOZ-LMS TM OZ-LMS 2008 OZ-LMS 2006 OZ-LMS Lite Best IT Serviece Provider OZNET KOREA Management Philosophy & Vision Introduction OZNETKOREA IT Mission Core Values KH IT ERP Web Solution IT SW 2000 4 3 508-2
More informationAPOGEE 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 informationT100MD+
User s Manual 100% ) ( x b a a + 1 RX+ TX+ DTR GND TX+ RX+ DTR GND RX+ TX+ DTR GND DSR RX+ TX+ DTR GND DSR [ DCE TYPE ] [ DCE TYPE ] RS232 Format Baud 1 T100MD+
More information에너지경제연구 Korean Energy Economic Review Volume 11, Number 2, September 2012 : pp. 1~26 실물옵션을이용한해상풍력실증단지 사업의경제성평가 1
에너지경제연구 Korean Energy Economic Review Volume 11, Number 2, September 2012 : pp. 1~26 실물옵션을이용한해상풍력실증단지 사업의경제성평가 1 2 3 4 5 6 ln ln 7 8 9 [ 그림 1] 해상풍력단지건설로드맵 10 11 12 13 < 표 1> 회귀분석결과 14 < 표 2> 미래현금흐름추정결과
More informationMicrosoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100
2015-1 프로그래밍언어 9. 연결형리스트, Stack, Queue 2015 년 5 월 4 일 교수김영탁 영남대학교공과대학정보통신공학과 (Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr) 연결리스트 (Linked List) 연결리스트연산 Stack
More information<목 차 > 제 1장 일반사항 4 I.사업의 개요 4 1.사업명 4 2.사업의 목적 4 3.입찰 방식 4 4.입찰 참가 자격 4 5.사업 및 계약 기간 5 6.추진 일정 6 7.사업 범위 및 내용 6 II.사업시행 주요 요건 8 1.사업시행 조건 8 2.계약보증 9 3
열차운행정보 승무원 확인시스템 구축 제 안 요 청 서 2014.6. 제 1장 일반사항 4 I.사업의 개요 4 1.사업명 4 2.사업의 목적 4 3.입찰 방식 4 4.입찰 참가 자격 4 5.사업 및 계약 기간 5 6.추진 일정 6 7.사업 범위 및 내용 6 II.사업시행 주요 요건 8 1.사업시행 조건 8 2.계약보증 9 3.시운전 및 하자보증 10
More information제 출 문 국방부 장관 귀하 본 보고서를 국방부 군인연금과에서 당연구원에 의뢰한 군인연금기금 체 계적 관리방안 연구용역의 최종보고서로 제출합니다. 2009. 4 (주)한국채권연구원 대표이사 오 규 철
군인연금기금 체계적 관리방안 연구 2009. 04 (최종보고서) 제 출 문 국방부 장관 귀하 본 보고서를 국방부 군인연금과에서 당연구원에 의뢰한 군인연금기금 체 계적 관리방안 연구용역의 최종보고서로 제출합니다. 2009. 4 (주)한국채권연구원 대표이사 오 규 철 목 차 제1장 서론 1 1. 연구의 목적 1 2. 연구의 방법 및 내용 2 제2장 현황분석 (AS-IS
More informationMicrosoft PowerPoint - CUDA_NeuralNet_정기철_발표자료.pptx
정기철 (kcjung@ssu.ac.kr/ http://hci.ssu.ac.kr) 숭실대학교 IT대학미디어학부 (http://www.ssu.ac.kr/ http://media.ssu.ac.kr) VMD/NAMD Molecular Dynamics 일리노이주립대 가시분자동력학 (VMD)/ 나노분자동력학 (NAMD) 240X 속도향상 http://www.ks.uiuc.edu/research/vmd/projects/ece498/lecture/
More informationETL_project_best_practice1.ppt
ETL ETL Data,., Data Warehouse DataData Warehouse ETL tool/system: ETL, ETL Process Data Warehouse Platform Database, Access Method Data Source Data Operational Data Near Real-Time Data Modeling Refresh/Replication
More information<32382DC3BBB0A2C0E5BED6C0DA2E687770>
논문접수일 : 2014.12.20 심사일 : 2015.01.06 게재확정일 : 2015.01.27 청각 장애자들을 위한 보급형 휴대폰 액세서리 디자인 프로토타입 개발 Development Prototype of Low-end Mobile Phone Accessory Design for Hearing-impaired Person 주저자 : 윤수인 서경대학교 예술대학
More informationPowerPoint 프레젠테이션
주식회사미루웨어 deep learning 개발머쉰 미루웨어는 NVIDIA GPU Computing / GPU 가상화분야솔루션제공공식파트너사입니다. http://www.miruware.com / miruware@miruware.com T : 02-562-8993 / F : 02-562-8994 Deep Learning 개발환경 Unutu 장점 ( 개발머쉰 )
More information슬라이드 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 informationuntitled
Step Motor Device Driver Embedded System Lab. II Step Motor Step Motor Step Motor source Embedded System Lab. II 2 open loop, : : Pulse, 1 Pulse,, -, 1 +5%, step Step Motor (2),, Embedded System Lab. II
More informationPRO1_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 informationMicrosoft Word - DELL_PowerEdge_TM_ R710 서버 성능분석보고서.doc
DELL PowerEdge R710 Server 성능분석보고서 본자료는 클루닉스에서자사통합시뮬레이션시스템구성제품인 GridCenter를이용하여 Dell PowerEdge R710 서버의성능을분석한보고서입니다. 클루닉스와 DELL의협의없이발췌및배포를금합니다. BMT 환경 : GridCenter-CAP, GridCenter-HPC, CAE 어플리케이션 Abaqus,Fluent,Gaussian
More informationBMP 파일 처리
BMP 파일처리 김성영교수 금오공과대학교 컴퓨터공학과 학습내용 영상반전프로그램제작 2 Inverting images out = 255 - in 3 /* 이프로그램은 8bit gray-scale 영상을입력으로사용하여반전한후동일포맷의영상으로저장한다. */ #include #include #define WIDTHBYTES(bytes)
More informationSRC PLUS 제어기 MANUAL
,,,, DE FIN E I N T R E A L L O C E N D SU B E N D S U B M O TIO
More informationOracle9i 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 informationMicrosoft PowerPoint - 알고리즘_5주차_1차시.pptx
Basic Idea of External Sorting run 1 run 2 run 3 run 4 run 5 run 6 750 records 750 records 750 records 750 records 750 records 750 records run 1 run 2 run 3 1500 records 1500 records 1500 records run 1
More informationMicrosoft 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지능정보연구제 16 권제 1 호 2010 년 3 월 (pp.71~92),.,.,., Support Vector Machines,,., KOSPI200.,. * 지능정보연구제 16 권제 1 호 2010 년 3 월
지능정보연구제 16 권제 1 호 2010 년 3 월 (pp.71~92),.,.,., Support Vector Machines,,., 2004 5 2009 12 KOSPI200.,. * 2009. 지능정보연구제 16 권제 1 호 2010 년 3 월 김선웅 안현철 社 1), 28 1, 2009, 4. 1. 지능정보연구제 16 권제 1 호 2010 년 3 월 Support
More information초보자를 위한 분산 캐시 활용 전략
초보자를위한분산캐시활용전략 강대명 charsyam@naver.com 우리가꿈꾸는서비스 우리가꿈꾸는서비스 우리가꿈꾸는서비스 우리가꿈꾸는서비스 그러나현실은? 서비스에필요한것은? 서비스에필요한것은? 핵심적인기능 서비스에필요한것은? 핵심적인기능 서비스에필요한것은? 핵심적인기능 서비스에필요한것은? 적절한기능 서비스안정성 트위터에매일고래만보이면? 트위터에매일고래만보이면?
More information11장 포인터
Dynamic Memory and Linked List 1 동적할당메모리의개념 프로그램이메모리를할당받는방법 정적 (static) 동적 (dynamic) 정적메모리할당 프로그램이시작되기전에미리정해진크기의메모리를할당받는것 메모리의크기는프로그램이시작하기전에결정 int i, j; int buffer[80]; char name[] = data structure"; 처음에결정된크기보다더큰입력이들어온다면처리하지못함
More informationuntitled
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 informationPowerPoint 프레젠테이션
@ 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슬라이드 1
www.altsoft.co.kr www.clunix.com COMSOL4.0a Cluster 성능테스트 2010 년 10 월 클루닉스 / 알트소프트 개요 개요 목차 BMT 환경정보 BMT 시나리오소개 COMSOL4.0a MPP 해석실행조건 BMT 결과 COMSOL4.0a 클러스터분석결과 ( 메모리 / 성능 ) COMSOL4.0a 클러스터최종분석결과 -2- 개요
More information초보자를 위한 C++
C++. 24,,,,, C++ C++.,..,., ( ). /. ( 4 ) ( ).. C++., C++ C++. C++., 24 C++. C? C++ C C, C++ (Stroustrup) C++, C C++. C. C 24.,. C. C+ +?. X C++.. COBOL COBOL COBOL., C++. Java C# C++, C++. C++. Java C#
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
비트연산자 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Ⅱ. Embedded GPU 모바일 프로세서의 발전방향은 저전력 고성능 컴퓨팅이다. 이 러한 목표를 달성하기 위해서 모바일 프로세서 기술은 멀티코 어 형태로 발전해 가고 있다. 예를 들어 NVIDIA의 최신 응용프 로세서인 Tegra3의 경우 쿼드코어 ARM Corte
스마트폰을 위한 A/V 신호처리기술 편집위원 : 김홍국 (광주과학기술원) 스마트폰에서의 영상처리를 위한 GPU 활용 박인규, 최호열 인하대학교 요 약 본 기고에서는 최근 스마트폰에서 요구되는 다양한 멀티미 디어 어플리케이션을 embedded GPU(Graphics Processing Unit)를 이용하여 고속 병렬처리하기 위한 GPGPU (General- Purpose
More informationMicrosoft Word - s.doc
오라클 백서 2010년 9월 WebLogic Suite를 위해 최적화된 오라클 솔루션 비즈니스 백서 개요...1 들어가는 글...2 통합 웹 서비스 솔루션을 통해 비즈니스 혁신 추구...3 단순화...4 기민한 환경 구축...5 탁월한 성능 경험...6 판도를 바꾸고 있는 플래시 기술...6 오라클 시스템은 세계 최고의 성능 제공...6 절감 효과 극대화...8
More informationPowerPoint 프레젠테이션
RecurDyn 의 Co-simulation 와 하드웨어인터페이스적용 2016.11.16 User day 김진수, 서준원 펑션베이솔루션그룹 Index 1. Co-simulation 이란? Interface 방식 Co-simulation 개념 2. RecurDyn 과 Co-simulation 이가능한분야별소프트웨어 Dynamics과 Control 1) RecurDyn
More informationBSC 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 informationuntitled
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 informationuntitled
NV40 (Chris Seitz) NV1 1 Wanda NV1x 2 2 Wolfman NV2x 6 3 Dawn NV3x 1 3 Nalu NV4x 2 2 2 95-98: Z- CPU GPU / Geometry Stage Rasterization Unit Raster Operations Unit 2D Triangles Bus (PCI) 2D Triangles (Multitexturing)
More information±èÇö¿í Ãâ·Â
Smartphone Technical Trends and Security Technologies The smartphone market is increasing very rapidly due to the customer needs and industry trends with wireless carriers, device manufacturers, OS venders,
More information歯메뉴얼v2.04.doc
1 SV - ih.. 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 - - - 23 24 R S T G U V W P1 P2 N R S T G U V W P1 P2 N R S T G U V W P1 P2 N 25 26 DC REACTOR(OPTION) DB UNIT(OPTION) 3 φ 220/440 V 50/60
More informationOPCTalk for Hitachi Ethernet 1 2. Path. DCOMwindow NT/2000 network server. Winsock update win95. . . 3 Excel CSV. Update Background Thread Client Command Queue Size Client Dynamic Scan Block Block
More information3.Bladesystem
HP BladeSystem HP BladeSystem HP, c7000 1/2 c3000. 8 SMB 3 HP. HP ProLiant BL460c G6/BL490c G6 HP ProLiant BL460c G6 HP ProLiant BL490c G6 1. HP ProLiant BL460c G6/BL490c G6, HP ProLiant BL460c G6/BL490c
More informationMicrosoft PowerPoint - 30.ppt [호환 모드]
이중포트메모리의실제적인고장을고려한 Programmable Memory BIST 2010. 06. 29. 연세대학교전기전자공학과박영규, 박재석, 한태우, 강성호 hipyk@soc.yonsei.ac.kr Contents Introduction Proposed Programmable Memory BIST(PMBIST) Algorithm Instruction PMBIST
More information계수를 결정하는 과정이며, 순방향 경로는 이러한 보정 계수를 데이터 경로에 적용하는 과정이다. 적응 서브시스템은 기준 신호로 송신된 데이터로부터 샘플을 캡처하고, 이를 PA로부터 출력된 신 호의 관찰 경로에 의한 동시 캡처된 신호와 비교함으로써 지속적으로 PA 특성에
이 글은 알테라(Altera ) SoC 상에서 실행하는 디지털 전치 왜곡(DPD) 알고리즘에 대한 알고 리즘 효율성을 분석하는 방법을 설명한다. 최적화를 안내하기 위해 ARM 개발 스튜디오 DS- 5 (Development Studio 5) 알테라 에디션 툴킷에 포함된 스트림라인 툴을 사용하여 설계 공간 을 분석하고, 코드를 프로파일링한다. 메모리 다항식에
More information슬라이드 1
강력한성능! 인터넷 / 업무용데스크탑 PC NX-H Series Desktop PC NX1- H700/H800/H900 NX2- H700/H800/H900 NX1-H Series 사양 Series 제품설명 ( 모델명 ) NX1-H Series, 슬림타입 기본형모델중보급형모델고급형모델 NX1-H800:112SN NX1-H800:324SN NX1-H800:534MS
More informationMicrosoft Word - 2부B windows 환경 visual studio 2005.doc
1. 영문 Visual Studio 2005 Visual Studio 2005 설치 Visual Studio 2005 시작하기 new project 파일 > 새로만들기 > 새로운 프로젝트 > Visual C/C++ Project > Console Application File > New >New Project > Visual C/C++ project > Console
More informationPJTROHMPCJPS.hwp
제 출 문 농림수산식품부장관 귀하 본 보고서를 트위스트 휠 방식 폐비닐 수거기 개발 과제의 최종보고서로 제출 합니다. 2008년 4월 24일 주관연구기관명: 경 북 대 학 교 총괄연구책임자: 김 태 욱 연 구 원: 조 창 래 연 구 원: 배 석 경 연 구 원: 김 승 현 연 구 원: 신 동 호 연 구 원: 유 기 형 위탁연구기관명: 삼 생 공 업 위탁연구책임자:
More informationFigure 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 information1. GigE Camera Interface를 위한 최소 PC 사양 CPU : Intel Core 2 Duo, 2.4GHz이상 RAM : 2GB 이상 LANcard : Intel PRO/1000xT 이상 VGA : PCI x 16, VRAM DDR2 RAM 256MB
Revision 1.0 Date 11th Nov. 2013 Description Established. Page Page 1 of 9 1. GigE Camera Interface를 위한 최소 PC 사양 CPU : Intel Core 2 Duo, 2.4GHz이상 RAM : 2GB 이상 LANcard : Intel PRO/1000xT 이상 VGA : PCI x
More informationVoice Portal using Oracle 9i AS Wireless
Voice Portal Platform using Oracle9iAS Wireless 20020829 Oracle Technology Day 1 Contents Introduction Voice Portal Voice Web Voice XML Voice Portal Platform using Oracle9iAS Wireless Voice Portal Video
More informationOP_Journalism
1 non-linear consumption 2 Whatever will change television will do so by re-defining the core product not just the tools we use to consume it. by Horace Dediu, Asymco 3 re-defining the core product not
More informationKDTÁ¾ÇÕ-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 informationecorp-프로젝트제안서작성실무(양식3)
(BSC: Balanced ScoreCard) ( ) (Value Chain) (Firm Infrastructure) (Support Activities) (Human Resource Management) (Technology Development) (Primary Activities) (Procurement) (Inbound (Outbound (Marketing
More informationOracle Database 10g: Self-Managing Database DB TSC
Oracle Database 10g: Self-Managing Database DB TSC Agenda Overview System Resource Application & SQL Storage Space Backup & Recovery ½ Cost ? 6% 12 % 6% 6% 55% : IOUG 2001 DBA Survey ? 6% & 12 % 6% 6%
More informationChap 6: Graphs
5. 작업네트워크 (Activity Networks) 작업 (Activity) 부분프로젝트 (divide and conquer) 각각의작업들이완료되어야전체프로젝트가성공적으로완료 두가지종류의네트워크 Activity on Vertex (AOV) Networks Activity on Edge (AOE) Networks 6 장. 그래프 (Page 1) 5.1 AOV
More informationBuy one get one with discount promotional strategy
Buy one get one with discount Promotional Strategy Kyong-Kuk Kim, Chi-Ghun Lee and Sunggyun Park ISysE Department, FEG 002079 Contents Introduction Literature Review Model Solution Further research 2 ISysE
More informationVertical Probe Card Technology Pin Technology 1) Probe Pin Testable Pitch:03 (Matrix) Minimum Pin Length:2.67 High Speed Test Application:Test Socket
Vertical Probe Card for Wafer Test Vertical Probe Card Technology Pin Technology 1) Probe Pin Testable Pitch:03 (Matrix) Minimum Pin Length:2.67 High Speed Test Application:Test Socket Life Time: 500000
More informationCD-RW_Advanced.PDF
HP CD-Writer Program User Guide - - Ver. 2.0 HP CD-RW Adaptec Easy CD Creator Copier, Direct CD. HP CD-RW,. Easy CD Creator 3.5C, Direct CD 3.0., HP. HP CD-RW TEAM ( 02-3270-0803 ) < > 1. CD...3 CD...5
More informationvm-웨어-01장
Chapter 16 21 (Agenda). (Green),., 2010. IT IT. IT 2007 3.1% 2030 11.1%, IT 2007 1.1.% 2030 4.7%, 2020 4 IT. 1 IT, IT. (Virtualization),. 2009 /IT 2010 10 2. 6 2008. 1970 MIT IBM (Mainframe), x86 1. (http
More informationOracle Apps Day_SEM
Senior Consultant Application Sales Consulting Oracle Korea - 1. S = (P + R) x E S= P= R= E= Source : Strategy Execution, By Daniel M. Beall 2001 1. Strategy Formulation Sound Flawed Missed Opportunity
More informationMicrosoft PowerPoint - AC3.pptx
Chapter 3 Block Diagrams and Signal Flow Graphs Automatic Control Systems, 9th Edition Farid Golnaraghi, Simon Fraser University Benjamin C. Kuo, University of Illinois 1 Introduction In this chapter,
More informationMicrosoft PowerPoint - Infiniband 20Gb 40Gb Switch HCA (??_1).ppt [Compatibility Mode]
InfiniBand 삼부시스템 Agenda 회사소개 인피니밴드제품소개 성능비교 10GbE 제품소개 성능비교 Gateway 소개 케이블 구축사례 결론 2009 MELLANOX TECHNOLOGIES - CONFIDENTIAL 2-2 회사소개 회사명 : Mellanox Technologies 설립년도 : 1999 년 본사 : Sunnyvale, California
More informationCONTENTS CONTENTS CONTENT 1. SSD & HDD 비교 2. SSD 서버 & HDD 서버 비교 3. LSD SSD 서버 & HDD 서버 비교 4. LSD SSD 서버 & 글로벌 SSD 서버 비교 2
읽기속도 1초에 20Gbps www.lsdtech.co.kr 2011. 7. 01 Green Computing SSD Server & SSD Storage 이기택 82-10-8724-0575 ktlee1217@lsdtech.co.kr CONTENTS CONTENTS CONTENT 1. SSD & HDD 비교 2. SSD 서버 & HDD 서버 비교 3. LSD
More information안전을 위한 주의사항 제품을 올바르게 사용하여 위험이나 재산상의 피해를 미리 막기 위한 내용이므로 반드시 지켜 주시기 바랍니다. 2 경고 설치 관련 지시사항을 위반했을 때 심각한 상해가 발생하거나 사망에 이를 가능성이 있는 경우 설치하기 전에 반드시 본 기기의 전원을
Digital Video Recorder 간편설명서 XD3316 안전을 위한 주의사항 제품을 올바르게 사용하여 위험이나 재산상의 피해를 미리 막기 위한 내용이므로 반드시 지켜 주시기 바랍니다. 2 경고 설치 관련 지시사항을 위반했을 때 심각한 상해가 발생하거나 사망에 이를 가능성이 있는 경우 설치하기 전에 반드시 본 기기의 전원을 차단하고, 전원 플러그를 동시에
More informationMicrosoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt
변수와상수 1 변수란무엇인가? 변수 : 정보 (data) 를저장하는컴퓨터내의특정위치 ( 임시저장공간 ) 메모리, register 메모리주소 101 번지 102 번지 변수의크기에따라 주로 byte 단위 메모리 2 기본적인변수형및변수의크기 변수의크기 해당컴퓨터에서는항상일정 컴퓨터마다다를수있음 short
More informationuntitled
9 hamks@dongguk.ac.kr : Source code Assembly language code x = a + b; ld a, %r1 ld b, %r2 add %r1, %r2, %r3 st %r3, x (Assembler) (bit pattern) (machine code) CPU security (code generator).. (Instruction
More information