introduction - comphys2/download/lecture/... · 9 네트워크와인터넷시대 • computer...
TRANSCRIPT
Introduction
2014. 9. 4
물리와 컴퓨터
이관수, 물리학과 첨단기술 8월 10호 (1998)
1930년대 : 계산기
• 펀치카드 계산기
– 곱셈 계산
• 탁상용 계산기
– 교육 훈련 용도
– Feynmann의 물리 입문
1940년대
• ENIAC (1946)
– U. Penn
– 기상/탄도계산
– 핵분열 Los Alamos
• Mark I
– Harvard
– 비선형 미분방정식
컴퓨터의 발전
• 기원전 : 주판• 1623 W. Schickard : 천문학 계산을 위한 첫 계산 기계• 1833 C. Babbage : 전 기계식, 디지털, 기억 및 프로그
램 가능한 계산기 고안• 1890 American Census : Punch Card• 1919 T. J. Watson : IBM 창업• 1939 bell Labs : 첫 이진(binary) 계산기• 1942 Stibitz : 부동점 (floating point) 계산• 1946 ENIAC : 무명의 물리학자, 전전자식 범용 계산기• 1948 IBM : 저장 프로그램을 가진 컴퓨터
컴퓨터와 물리학
• 1947 Ulam, von Neumann : Monte Carlo– 중성자 확산 흉내내기 (simulation, mimic)
• 나선 은하 운동의 추적, 일기 예보 계산 등 적용 시작– 펀치 카드 1개 = 입자 1개
• 용어– Numerical Experiment : 물리 용어– Simulation : 군사 용어
• 1950년대 : 대용량 IBM 컴퓨터• 1980년대 : 슈퍼컴퓨터
자료의 저장 (실험 물리)
컴퓨터의 대중화
• Microprocessor의 등장 (1971)
• 워크스테이션 등장 (1980년대)
• Desktop의 대중화
– 경차보다 비싼 PC
9
네트워크와 인터넷 시대
• Computer Network의 구축과 인터넷의 성장
– 1958년 ARPA설립, 1972 ARPAnet (패킷 전송방식), 1973 TCP/IP프로토콜
• 핵전쟁이 발발할 경우 통신두절을 막기위해 시작.
– 1970년초 Ethernet (근거리 통신망), 1969년 UNIX운영시스템
– 1983년 진정한 의미의 인터넷 탄생 (TCP/IP protocol의 통일, LAN의 표준화)
– 1980년대이후 전자메일, 파일전송, 고퍼, 네트워크뉴스, 공개게시판
– 1989년 CERN에서의 WWW개발 (HTTP 응용프로토콜)
• 입자물리학자들이 공동연구를 위해 처음 개발
– 1993년 NCSA의 웹 브라우저인 모자이크 (넷스케이프의 전신)개발
– 1994년 넷스케이프 창립 및 웹 브라우저의 상업화
• 정보통신혁명과 사이버공간의 발전
– 미디어와 통신망의 결합 - 인터넷전화, 인터넷 TV, 케이블방송망
– 쌍방향통신의 보편화 – 웹 2.0
– 사이버 공간 - 통신과 컴퓨터, 모빌의 결합된 미디어의 발달
• 전자상거래, 전자민주주의, 전자출판, SNS (Facebook, Twitter)
컴퓨터와 물리학
컴퓨터와 물리학
• 컴퓨터와 물리학
– 물리: 초기 컴퓨터개발의 원동력 – ENIAC, MC, WWW
– 컴퓨터: 물리 연구방법의 패러다임을 바꿈.
• 이론물리학, 실험물리학에 이은 제 3의 가지로서의 전산물리
– 시각화, 모의실험
• 전산물리 Computational Physics 란?
– 좁은 의미: 수치해석 도구와 모의실험을 통해 물리 문제를 해결함.
– 넓은 의미: 컴퓨터의 도움으로 물리 문제를 해결하기 위한 모든 활동.
• 예: 사무자동화 도구의 이용
• 예: 고성능 컴퓨터를 디자인하고 만드는 것
12
전산물리의 중요성• “가상실험”으로 인한 물리 연구패턴의 빠른 변화 Desktop Experiment
– 실험실에서 할 수 없는 실험을 함.
• 고위험, 고비용, 너무 복잡한 현상, 불가능 또는 재현할 수 없는 자연현상
– 예: 중성자확산, 가속기실험, 단백질 접힘, 다체계, 뭇알갱이계, 별송이
– 고해상도 시각화도구를 이용한 효율적 데이터 처리.
• 시각은 엄청난 정보를 축적, 모자라는 직관력 보완.
• 전산물리의 결과는 그림으로 재현, 인쇄, 발표됨.
– 인터넷을 통해 연구자간 빠른 정보교환 및 resource의 효율적 관리
• Tex, LaTeX, RevTeX, KPSTeX, 아래한글, MS Word, PowerPoint, PostScript,...
• e-mail, ftp, telnet, WWW, HTML, 인터넷
• 이론물리의 한계 극복 및 물리의 영역확충 Third Branch
– 전산물리가 이론물리의 보조도구가 아니라 새로운 패러다임을 창출함
• 예: 전산통계물리학, 양자색소역학, 비선형동역학, 카오스, 복잡계
• 물리교육을 위한 새로운 미디움 제공. Teaching Innovation
전산물리로 풀어야 하는 문제들
고체물리: 외부자기장이가해진탄소나노튜브끝의전자밀도분포
천체물리: 중력에의한 975만개의입자의운동에대한모의실험과시각화
전산물리로 풀어야하는 문제들분자동역학 (Molecular Dynamics)
A heterogeneous nucleation of a vapor bubble on a solid surface was simulated by the molecular dynamics method. Liquid argon between parallel solid surfaces was gradually expanded, until a vapor bubble was nucleated.http://www.photon.t.u-tokyo.ac.jp/~kimutatu/bubble/
고에너지연구와 컴퓨터
미래의 컴퓨터와 물리학
• 계산 Computation 의 중요성의 확대– 넓은 의미의 계산 : 입력 -> 출력 을 수반하는 모든 현상 예: 뇌의 인지과정
• 물리학은 21세기의 컴퓨터 발전방향과 더불어 성장할 것임– 신경컴퓨터
• 병렬계산, 복잡계과학, 생물리학, 뇌과학과의 접목
– 양자컴퓨터
• 나노과학 및 정보보안/암호론과 접목
– 광학컴퓨터
• 빠른 속도, 광역 연결망, 광학 및 광전자학과의 접목
– DNA컴퓨터
• 고집적 기억, 병렬계산, 생체복잡성, 생명공학과의 접목
• 미래의 전산물리
– 이론 및 실험물리학의 강력한 원군으로 물리학의 르네상스 재현
• 예: 생의학, 금융공학, 기상예측, 뇌과학, 인지과학
– 물리학의 패러다임 변화의 주축?
• Material중심의 대상-> 소프트 중심 (알고리듬, 방법론 )의 변화
Hardware Software
컴퓨터를 이용한 물리연구에 대한 논란• 컴퓨터를 이용한 물리연구의 어려움
– 컴퓨터를 이용하여 좋은 물리를 하는 것이 어렵다.
– 컴퓨터를 이용한 연구는 엄밀한 검증이 어렵다.
– 컴퓨터에서 나온 결과를 맹신한다.
– 생각하는 것보다 훨씬 많은 시간을 프로그래밍하는 데 쓴다.
• 컴퓨터는 다만 계산 도구임. (Intellectually neutral)
– 사용자에 따라 그 유용성이 달라짐.
Computers cannot think by themselves!
It is a physicist who does physics!
• 전산물리의 목표 중 하나는 물리학자를 computer-literate로 만들어 장벽을 넘어 새로운 세
상을 탐구할 수 있도록 도와주는 것임.
• 고전역학? 전자기학? 전산물리? 물리 연구를 위한 기초들
컴퓨터를 이용한 물리 시뮬레이션
물리에서의 이용 방법
• 모의 실험 Simulation– 고위험, 고비용, 너무 복잡한 현상, 불가능 또는 재현할 수 없는 자연현상– 중성자 확산, 가속기 실험, 단백질 접힘, 다체계
• 수치해석 Numerical Analysis– 정확성, 효율성, 안정성– 수치적분, 행렬계산, 편미방
• 기호연산 Symbolic Manipulation– 테일러 전개, 함수근사계산
• 데이터 수집과 분석– 고에너지물리
• 시각화 Visualization 및 사용자 환경 User Interface– 고해상도, 복잡성– 물리교육
컴퓨터 실험
실험 컴퓨터 실험
시료 모형화
실험 기자재 하드웨어/소프트웨어
Calibration 디버깅
실험측정 계산
데이터 분석 데이터 분석
컴퓨터 실험의 단계
① 물리법칙과 모델을 결정
② 초기/경계조건과 변수들을 결정
③ 수치해석의 도구들을 결정
④ 프로그래밍, 디버깅, 테스트
⑤ 계산
⑥ 데이터 분석
- 용수철의 운동
뉴턴의 2법칙/F=-kx=mx’’
- 시스템 변수: 위치 x, 속도 v=x’
매개변수: 질량 m, 용수철상수 k
초기조건: 초기 위치/속도: x0, v0
- 수치해석 도구: 수치적분 알고리즘
Euler, Runge-Kutta
- 프로그래밍 언어: C, Fortran, MATLAB
- 계산
- 데이터분석: 그래프 그리기
컴퓨터 실험의 고려요소들
• 하드웨어/소프트웨어– CPU, memory, 연결구조– Language, Compiler
• 효율성– 계산 시간, 알고리즘의 복잡성, 프로그래밍/디버깅 소요 시간
• 오차크기– 자르기 오차, 부동점 연산, 유효숫자
• 이산화 알고리즘– 이산화 오차
• 수렴– 안정성, 수렴 속도
과학 계산에서의 오차
• 컴퓨터 자체의 문제: 옛날 이야기
• 프로그래밍 실수: 가장 흔함
• 실험(측정) 오차: 데이터 수집 시 오차– 디지털 측정장비의 유한한 저장용량
• 모델 오차– 선형근사, 평균장근사 등
• 근사 오차– 무한수열의 잘라버리기
• 수치 오차– 컴퓨터 유효숫자에 따른 오차
𝑥′′ +𝑔
𝑙sin 𝑥 = 0 → 𝑥′′ +
𝑔
𝑙𝑥 = 0
𝑓 𝑥 = 𝑛=𝑁
𝑎𝑛 sin 𝑛𝑥 + 𝑏𝑛 cos 𝑛𝑥
𝜋 = 4(1 −1
3+1
5−1
7+⋯) : Leibnitz’s formula
부동점 연산과 오차
• 부동점 계산 Floating Point– 컴퓨터의 용량 제한 때문에 실수를 유한한 유효숫자 내에서만
표현
• IEEE Floating Point Standard– 예: 32bit (4byte)– 유한개의 실수만 표시~231
• (1bit sign)(23bit mantissa)X2(8bit component)
• Mantissa의 우리말?
– 가장 큰 실수: Overflow Level(OFL)~2127~1038
– 가장 작은 양의 실수: Underflow Level(UFL)~2-126~10-38
– 부동점 연산은 정확하지 않음: 가장 가까운 부동점 실수로 바뀜– Machine Epsilon(εmach)
• 컴퓨터 연산의 상대적 정확성을 재는 척도: mantissa에 의해 결정
좋은 프로그램의 조건
• 정확성: 옳은 답– 기본
• 오차 제어: 오차의 인지 및 제어– 좋은 실험물리학자의 기본
• 효율성: 빠르고 가벼운 계산– 좋은 전산물리학도로 가는 길
• 구현: 간단하고 이해하기 쉽고 확장성이 큼– 전산물리학도의 지향점
• 사용자 환경: 쓰기 쉽고 편리– 점프
• 자료 정리: 설명, 주석, 매뉴얼 등– 스스로, 남을 위해
과학계산용 컴퓨터 언어
• 컴퓨터 언어– 인간의 언어 컴퓨터의 언어– Compiler
• FOTRAN– 과학계산 언어의 원조– FOTRAN77 (1977)– FOTRAN90 (1992)
• C/C++– Traditional C (1980s)– ANSI C (1988)– UNIX 운영체제의 언어, PC의 표준개발 언어– Low-level 제어, 학계에서 많이 이용되는 강력한 언어
• Java, Perl, Python…
• MATLAB/Mathematica/Maple– 수학 패키지– 쉬운 프로그래밍– 편리한 그래프 구현
수메르인의 알고리즘 ( 2)
• 수메르인의 계산 (BC1700)
– 𝑥𝑛+1 =1
2𝑥𝑛 +
2
𝑥𝑛, 𝑥0 > 0
– lim𝑛→∞𝑥𝑛 = 2
• Questions– 수렴하는가?– 얼마나 빨리 수렴하는가?– 오차를 줄이려면 얼마나 반복해야 하는가?– 𝑥0가 달라지면 어떻게 되는가?