27
Introduction 2014. 9. 4

Introduction - comphys2/download/lecture/... · 9 네트워크와인터넷시대 • Computer Network의구축과인터넷의성장 – 1958년ARPA설립, 1972 ARPAnet (패킷전송방식),

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Introduction - comphys2/download/lecture/... · 9 네트워크와인터넷시대 • Computer Network의구축과인터넷의성장 – 1958년ARPA설립, 1972 ARPAnet (패킷전송방식),

Introduction

2014. 9. 4

Page 2: Introduction - comphys2/download/lecture/... · 9 네트워크와인터넷시대 • Computer Network의구축과인터넷의성장 – 1958년ARPA설립, 1972 ARPAnet (패킷전송방식),

물리와 컴퓨터

이관수, 물리학과 첨단기술 8월 10호 (1998)

Page 3: Introduction - comphys2/download/lecture/... · 9 네트워크와인터넷시대 • Computer Network의구축과인터넷의성장 – 1958년ARPA설립, 1972 ARPAnet (패킷전송방식),

1930년대 : 계산기

• 펀치카드 계산기

– 곱셈 계산

• 탁상용 계산기

– 교육 훈련 용도

– Feynmann의 물리 입문

Page 4: Introduction - comphys2/download/lecture/... · 9 네트워크와인터넷시대 • Computer Network의구축과인터넷의성장 – 1958년ARPA설립, 1972 ARPAnet (패킷전송방식),

1940년대

• ENIAC (1946)

– U. Penn

– 기상/탄도계산

– 핵분열 Los Alamos

• Mark I

– Harvard

– 비선형 미분방정식

Page 5: Introduction - comphys2/download/lecture/... · 9 네트워크와인터넷시대 • Computer Network의구축과인터넷의성장 – 1958년ARPA설립, 1972 ARPAnet (패킷전송방식),

컴퓨터의 발전

• 기원전 : 주판• 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 : 저장 프로그램을 가진 컴퓨터

Page 6: Introduction - comphys2/download/lecture/... · 9 네트워크와인터넷시대 • Computer Network의구축과인터넷의성장 – 1958년ARPA설립, 1972 ARPAnet (패킷전송방식),

컴퓨터와 물리학

• 1947 Ulam, von Neumann : Monte Carlo– 중성자 확산 흉내내기 (simulation, mimic)

• 나선 은하 운동의 추적, 일기 예보 계산 등 적용 시작– 펀치 카드 1개 = 입자 1개

• 용어– Numerical Experiment : 물리 용어– Simulation : 군사 용어

• 1950년대 : 대용량 IBM 컴퓨터• 1980년대 : 슈퍼컴퓨터

Page 7: Introduction - comphys2/download/lecture/... · 9 네트워크와인터넷시대 • Computer Network의구축과인터넷의성장 – 1958년ARPA설립, 1972 ARPAnet (패킷전송방식),

자료의 저장 (실험 물리)

Page 8: Introduction - comphys2/download/lecture/... · 9 네트워크와인터넷시대 • Computer Network의구축과인터넷의성장 – 1958년ARPA설립, 1972 ARPAnet (패킷전송방식),

컴퓨터의 대중화

• Microprocessor의 등장 (1971)

• 워크스테이션 등장 (1980년대)

• Desktop의 대중화

– 경차보다 비싼 PC

Page 9: Introduction - comphys2/download/lecture/... · 9 네트워크와인터넷시대 • Computer Network의구축과인터넷의성장 – 1958년ARPA설립, 1972 ARPAnet (패킷전송방식),

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)

Page 10: Introduction - comphys2/download/lecture/... · 9 네트워크와인터넷시대 • Computer Network의구축과인터넷의성장 – 1958년ARPA설립, 1972 ARPAnet (패킷전송방식),

컴퓨터와 물리학

Page 11: Introduction - comphys2/download/lecture/... · 9 네트워크와인터넷시대 • Computer Network의구축과인터넷의성장 – 1958년ARPA설립, 1972 ARPAnet (패킷전송방식),

컴퓨터와 물리학

• 컴퓨터와 물리학

– 물리: 초기 컴퓨터개발의 원동력 – ENIAC, MC, WWW

– 컴퓨터: 물리 연구방법의 패러다임을 바꿈.

• 이론물리학, 실험물리학에 이은 제 3의 가지로서의 전산물리

– 시각화, 모의실험

• 전산물리 Computational Physics 란?

– 좁은 의미: 수치해석 도구와 모의실험을 통해 물리 문제를 해결함.

– 넓은 의미: 컴퓨터의 도움으로 물리 문제를 해결하기 위한 모든 활동.

• 예: 사무자동화 도구의 이용

• 예: 고성능 컴퓨터를 디자인하고 만드는 것

Page 12: Introduction - comphys2/download/lecture/... · 9 네트워크와인터넷시대 • Computer Network의구축과인터넷의성장 – 1958년ARPA설립, 1972 ARPAnet (패킷전송방식),

12

전산물리의 중요성• “가상실험”으로 인한 물리 연구패턴의 빠른 변화 Desktop Experiment

– 실험실에서 할 수 없는 실험을 함.

• 고위험, 고비용, 너무 복잡한 현상, 불가능 또는 재현할 수 없는 자연현상

– 예: 중성자확산, 가속기실험, 단백질 접힘, 다체계, 뭇알갱이계, 별송이

– 고해상도 시각화도구를 이용한 효율적 데이터 처리.

• 시각은 엄청난 정보를 축적, 모자라는 직관력 보완.

• 전산물리의 결과는 그림으로 재현, 인쇄, 발표됨.

– 인터넷을 통해 연구자간 빠른 정보교환 및 resource의 효율적 관리

• Tex, LaTeX, RevTeX, KPSTeX, 아래한글, MS Word, PowerPoint, PostScript,...

• e-mail, ftp, telnet, WWW, HTML, 인터넷

• 이론물리의 한계 극복 및 물리의 영역확충 Third Branch

– 전산물리가 이론물리의 보조도구가 아니라 새로운 패러다임을 창출함

• 예: 전산통계물리학, 양자색소역학, 비선형동역학, 카오스, 복잡계

• 물리교육을 위한 새로운 미디움 제공. Teaching Innovation

Page 13: Introduction - comphys2/download/lecture/... · 9 네트워크와인터넷시대 • Computer Network의구축과인터넷의성장 – 1958년ARPA설립, 1972 ARPAnet (패킷전송방식),

전산물리로 풀어야 하는 문제들

고체물리: 외부자기장이가해진탄소나노튜브끝의전자밀도분포

천체물리: 중력에의한 975만개의입자의운동에대한모의실험과시각화

Page 14: Introduction - comphys2/download/lecture/... · 9 네트워크와인터넷시대 • Computer Network의구축과인터넷의성장 – 1958년ARPA설립, 1972 ARPAnet (패킷전송방식),

전산물리로 풀어야하는 문제들분자동역학 (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/

Page 15: Introduction - comphys2/download/lecture/... · 9 네트워크와인터넷시대 • Computer Network의구축과인터넷의성장 – 1958년ARPA설립, 1972 ARPAnet (패킷전송방식),

고에너지연구와 컴퓨터

Page 16: Introduction - comphys2/download/lecture/... · 9 네트워크와인터넷시대 • Computer Network의구축과인터넷의성장 – 1958년ARPA설립, 1972 ARPAnet (패킷전송방식),

미래의 컴퓨터와 물리학

• 계산 Computation 의 중요성의 확대– 넓은 의미의 계산 : 입력 -> 출력 을 수반하는 모든 현상 예: 뇌의 인지과정

• 물리학은 21세기의 컴퓨터 발전방향과 더불어 성장할 것임– 신경컴퓨터

• 병렬계산, 복잡계과학, 생물리학, 뇌과학과의 접목

– 양자컴퓨터

• 나노과학 및 정보보안/암호론과 접목

– 광학컴퓨터

• 빠른 속도, 광역 연결망, 광학 및 광전자학과의 접목

– DNA컴퓨터

• 고집적 기억, 병렬계산, 생체복잡성, 생명공학과의 접목

• 미래의 전산물리

– 이론 및 실험물리학의 강력한 원군으로 물리학의 르네상스 재현

• 예: 생의학, 금융공학, 기상예측, 뇌과학, 인지과학

– 물리학의 패러다임 변화의 주축?

• Material중심의 대상-> 소프트 중심 (알고리듬, 방법론 )의 변화

Hardware Software

Page 17: Introduction - comphys2/download/lecture/... · 9 네트워크와인터넷시대 • Computer Network의구축과인터넷의성장 – 1958년ARPA설립, 1972 ARPAnet (패킷전송방식),

컴퓨터를 이용한 물리연구에 대한 논란• 컴퓨터를 이용한 물리연구의 어려움

– 컴퓨터를 이용하여 좋은 물리를 하는 것이 어렵다.

– 컴퓨터를 이용한 연구는 엄밀한 검증이 어렵다.

– 컴퓨터에서 나온 결과를 맹신한다.

– 생각하는 것보다 훨씬 많은 시간을 프로그래밍하는 데 쓴다.

• 컴퓨터는 다만 계산 도구임. (Intellectually neutral)

– 사용자에 따라 그 유용성이 달라짐.

Computers cannot think by themselves!

It is a physicist who does physics!

• 전산물리의 목표 중 하나는 물리학자를 computer-literate로 만들어 장벽을 넘어 새로운 세

상을 탐구할 수 있도록 도와주는 것임.

• 고전역학? 전자기학? 전산물리? 물리 연구를 위한 기초들

Page 18: Introduction - comphys2/download/lecture/... · 9 네트워크와인터넷시대 • Computer Network의구축과인터넷의성장 – 1958년ARPA설립, 1972 ARPAnet (패킷전송방식),

컴퓨터를 이용한 물리 시뮬레이션

Page 19: Introduction - comphys2/download/lecture/... · 9 네트워크와인터넷시대 • Computer Network의구축과인터넷의성장 – 1958년ARPA설립, 1972 ARPAnet (패킷전송방식),

물리에서의 이용 방법

• 모의 실험 Simulation– 고위험, 고비용, 너무 복잡한 현상, 불가능 또는 재현할 수 없는 자연현상– 중성자 확산, 가속기 실험, 단백질 접힘, 다체계

• 수치해석 Numerical Analysis– 정확성, 효율성, 안정성– 수치적분, 행렬계산, 편미방

• 기호연산 Symbolic Manipulation– 테일러 전개, 함수근사계산

• 데이터 수집과 분석– 고에너지물리

• 시각화 Visualization 및 사용자 환경 User Interface– 고해상도, 복잡성– 물리교육

Page 20: Introduction - comphys2/download/lecture/... · 9 네트워크와인터넷시대 • Computer Network의구축과인터넷의성장 – 1958년ARPA설립, 1972 ARPAnet (패킷전송방식),

컴퓨터 실험

실험 컴퓨터 실험

시료 모형화

실험 기자재 하드웨어/소프트웨어

Calibration 디버깅

실험측정 계산

데이터 분석 데이터 분석

Page 21: Introduction - comphys2/download/lecture/... · 9 네트워크와인터넷시대 • Computer Network의구축과인터넷의성장 – 1958년ARPA설립, 1972 ARPAnet (패킷전송방식),

컴퓨터 실험의 단계

① 물리법칙과 모델을 결정

② 초기/경계조건과 변수들을 결정

③ 수치해석의 도구들을 결정

④ 프로그래밍, 디버깅, 테스트

⑤ 계산

⑥ 데이터 분석

- 용수철의 운동

뉴턴의 2법칙/F=-kx=mx’’

- 시스템 변수: 위치 x, 속도 v=x’

매개변수: 질량 m, 용수철상수 k

초기조건: 초기 위치/속도: x0, v0

- 수치해석 도구: 수치적분 알고리즘

Euler, Runge-Kutta

- 프로그래밍 언어: C, Fortran, MATLAB

- 계산

- 데이터분석: 그래프 그리기

Page 22: Introduction - comphys2/download/lecture/... · 9 네트워크와인터넷시대 • Computer Network의구축과인터넷의성장 – 1958년ARPA설립, 1972 ARPAnet (패킷전송방식),

컴퓨터 실험의 고려요소들

• 하드웨어/소프트웨어– CPU, memory, 연결구조– Language, Compiler

• 효율성– 계산 시간, 알고리즘의 복잡성, 프로그래밍/디버깅 소요 시간

• 오차크기– 자르기 오차, 부동점 연산, 유효숫자

• 이산화 알고리즘– 이산화 오차

• 수렴– 안정성, 수렴 속도

Page 23: Introduction - comphys2/download/lecture/... · 9 네트워크와인터넷시대 • Computer Network의구축과인터넷의성장 – 1958년ARPA설립, 1972 ARPAnet (패킷전송방식),

과학 계산에서의 오차

• 컴퓨터 자체의 문제: 옛날 이야기

• 프로그래밍 실수: 가장 흔함

• 실험(측정) 오차: 데이터 수집 시 오차– 디지털 측정장비의 유한한 저장용량

• 모델 오차– 선형근사, 평균장근사 등

• 근사 오차– 무한수열의 잘라버리기

• 수치 오차– 컴퓨터 유효숫자에 따른 오차

𝑥′′ +𝑔

𝑙sin 𝑥 = 0 → 𝑥′′ +

𝑔

𝑙𝑥 = 0

𝑓 𝑥 = 𝑛=𝑁

𝑎𝑛 sin 𝑛𝑥 + 𝑏𝑛 cos 𝑛𝑥

𝜋 = 4(1 −1

3+1

5−1

7+⋯) : Leibnitz’s formula

Page 24: Introduction - comphys2/download/lecture/... · 9 네트워크와인터넷시대 • Computer Network의구축과인터넷의성장 – 1958년ARPA설립, 1972 ARPAnet (패킷전송방식),

부동점 연산과 오차

• 부동점 계산 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에 의해 결정

Page 25: Introduction - comphys2/download/lecture/... · 9 네트워크와인터넷시대 • Computer Network의구축과인터넷의성장 – 1958년ARPA설립, 1972 ARPAnet (패킷전송방식),

좋은 프로그램의 조건

• 정확성: 옳은 답– 기본

• 오차 제어: 오차의 인지 및 제어– 좋은 실험물리학자의 기본

• 효율성: 빠르고 가벼운 계산– 좋은 전산물리학도로 가는 길

• 구현: 간단하고 이해하기 쉽고 확장성이 큼– 전산물리학도의 지향점

• 사용자 환경: 쓰기 쉽고 편리– 점프

• 자료 정리: 설명, 주석, 매뉴얼 등– 스스로, 남을 위해

Page 26: Introduction - comphys2/download/lecture/... · 9 네트워크와인터넷시대 • Computer Network의구축과인터넷의성장 – 1958년ARPA설립, 1972 ARPAnet (패킷전송방식),

과학계산용 컴퓨터 언어

• 컴퓨터 언어– 인간의 언어 컴퓨터의 언어– Compiler

• FOTRAN– 과학계산 언어의 원조– FOTRAN77 (1977)– FOTRAN90 (1992)

• C/C++– Traditional C (1980s)– ANSI C (1988)– UNIX 운영체제의 언어, PC의 표준개발 언어– Low-level 제어, 학계에서 많이 이용되는 강력한 언어

• Java, Perl, Python…

• MATLAB/Mathematica/Maple– 수학 패키지– 쉬운 프로그래밍– 편리한 그래프 구현

Page 27: Introduction - comphys2/download/lecture/... · 9 네트워크와인터넷시대 • Computer Network의구축과인터넷의성장 – 1958년ARPA설립, 1972 ARPAnet (패킷전송방식),

수메르인의 알고리즘 ( 2)

• 수메르인의 계산 (BC1700)

– 𝑥𝑛+1 =1

2𝑥𝑛 +

2

𝑥𝑛, 𝑥0 > 0

– lim𝑛→∞𝑥𝑛 = 2

• Questions– 수렴하는가?– 얼마나 빨리 수렴하는가?– 오차를 줄이려면 얼마나 반복해야 하는가?– 𝑥0가 달라지면 어떻게 되는가?