Computation for Physics

Download Report

Transcript Computation for Physics

Computation for
Physics
計算物理概論
什麼是計算及計算器
基本資料
• 教師:陳柏中 Pochung Chen
• 物理館 R521,理論中心 R510
• [email protected]
• http://qubit.phys.nthu.edu.tw/~pcchen (選 Teaching)
• 助教:張博勝
• [email protected]
• 上課時間:R5R6R7 (1:20pm-16:40pm)
• 上課地點:物理館019 or 計中 2F 電一教室
評量方法
• 作業成績
• 期末報告或計畫
• 課堂表現
課程目標
• 了解電腦基本架構
• 學習使用程式語言 (Python)
• 學習使用應用軟體 (Sage Math)
• 學習使用電腦解決物理問題
課程大綱
• Introduction to computers
• Introduction to UNIX-like environment
• Introduction to programming languages
• Introduction to software
• Introduction to algorithms
• Introduction to computational physics
• Information society 資訊社
Weekly Schedule
• Week 1: 2/21 Lecture
• Week 9: 4/18 Lab-4+Lecture
• Week 2: 2/28 (No class)
• Week 10: 4/25 Lab-5+Lecture
• Week 3: 3/7 Lecture
• Week 11: 5/2 Lab-6+Lecture
• Week 4: 3/14 Lab-1
• Week 12: 5/9 Lab-7+Lecture
• Week 5: 3/21 Guest lecture:
• Week 13: 5/16 Lab-8+Lecture
• 李士傑「資訊與社會:什麼
• Week 14: 5/23 Lab-9+Lecture
是自由?」
• Week 6: 3:28 Lab-2+Lecture
• Week 15: 5/30 Lab-10+Lecture
• Week 7: 4/4 (No class)
• Week 16: 6/6 Lab-11+Lecture
• Week 8: 4/11 Lab-3+Lecture
• Week 17: 6/13 Lab-12+Lecture
• Week 18: 6/20 (Final week)
Experiment, Theory,
Simulation
Simulation
Experiment
Theory
What is Computation?
From Wikipedia
• Computation is any type of calculation or use of computing
technology in information processing.
• Computation is a process following a well-defined model understood
and expressed as, for example, an algorithm, or a protocol.
• Computational physics is the study and implementation of
numerical algorithms to solve problems in physics for which a
quantitative theory already exists. It is often regarded as a subdiscipline of theoretical physics but some consider it an intermediate
branch between theoretical and experimental physics.
• The study of the physics of computation relates to understanding the
fundamental physical limits of computers. This field has led to the
investigation of how thermodynamics limits information processing,
the understanding of chaos and dynamical systems, and a rapidly
growing effort to invent new quantum computers.
Introduction to
Computer
• A computer is a general
purpose device that can be
programmed to carry out a
finite set of arithmetic or
logical operations. Since a
sequence of operations can
be readily changed, the
computer can solve more
than one kind of problem
• The Zuse Z3, 1941,
considered the world's first
working programmable, fully
automatic computing
machine.
Computing Hardware
• Computing hardware evolved from machines that needed
separate manual action to perform each arithmetic
operation, to punched card machines, and then to storedprogram computers. The history of stored-program
computers relates first to computer architecture, that is, the
organization of the units to perform input and output, to
store data and to operate as an integrated mechanism.
算盤 Abacus
• As an aid to calculation
• No automation
Pascaline
• 1642-1645: Prototype period.
• First mechanical calculator that can perform
automatically the basic operations of arithmetic
http://www.youtube.com/watch?v=3h71HAJWnVU
Blaise Pascal 6/19/1623–8/19/1662
Arithmomètre
• Patented in France by Thomas de Colmar in 1820 and
manufactured from 1851 to 1915. It become the first
commercially successful mechanical calculator.
• Operations:
•
•
•
•
•
•
Sliding the Top Carriage
Addition
Multiplication
Subtraction
Integer division
Decimal division
• http://www.arithmometre.org/
http://www.youtube.com/watch?v=s2T_158Es
Ow
http://www.youtube.com/watch?v=v6niUVf0d
Difference engine
• A difference engine is an automatic
mechanical calculator designed to
tabulate polynomial functions. The
name derives from the method of
divided differences, a way to
interpolate or tabulate functions by
using a small set of polynomial
coefficients.
• Babbage's difference engine No. 2,
finally built in 1991, could hold 8
numbers of 31 decimal digits each
and could thus tabulate 7th degree
polynomials to that precision. The
best machines from Scheutz could
store 4 numbers with 15 digits each.
http://www.youtube.com/watch?v=0anIyVGe
Charles Babbage,
12/26/1791–
10/18/1871
Analytical engine
• Programmable mechanical general-purpose computer
• It incorporated an arithmetic logic unit, control flow in the
form of conditional branching and loops, and integrated
memory
• The input (programs and data) was to be provided to the
machine via punched cards
• For output, the machine would have a printer, a curve
plotter and a bell. The machine would also be able to punch
numbers onto cards to be read in later.
• There was to be a store (that is, a memory) capable of
holding 1,000 numbers of 40 decimal digits each (ca. 16.7
kB).
• Never built
Atanasoff–Berry
Computer 1942
• One of the first electronic digital
computing devices
• Not programmable
• Parallel processing
• Binary arithmetic
• Regenerative capacitor memory
• Separation of memory and
computing functions
http://www.youtube.com/watch?v=YyxGIbt
MS9E
Colossus computer 1944
• World's first electronic, digital, programmable, singlepurpose computer with variable coefficients.
Harvard Mark I 1944
• Electro-mechanical computer.
• Program-controlled by 24-channel punched paper tape.
ENIAC 1946
• Electronic Numerical Integrator And Computer
• First electronic general-purpose computer
• Turing-complete, digital, and re-programmable to
solve a full range of computing problems.
• ENIAC contained 17,468 vacuum tubes, 7,200 crystal
diodes, 1,500 relays, 70,000 resistors, 10,000 capacitors
and around 5 million hand-soldered joints. It weighed
more than 27 t, was roughly 2.4 m × 0.9 m × 30 m,
took up 167 m2, and consumed 150 kW of power.
• The need of a stored-program computer
Alan Turing
• Alan Mathison Turing, 6/23/1912 – 6/7/1954
• Universal Turing machine
• Algorithm
• Computation
• Criminal prosecution in 1952 due to his homosexuality
• British Prime Minister Gordon Brown made an official
public apology on behalf of the British government for
"the appalling way he was treated” in 2009.
Turing Machine
Turing Machine
• A tape divided into cells, one next to the other. Each cell contains a symbol from
some finite alphabet. The alphabet contains a special blank and one or more other
symbols. The tape is assumed to be arbitrarily extendable to the left and to the right.
Cells that have not been written to before are assumed to be filled with the blank
symbol.
• A head that can read and write symbols on the tape and move the tape left and right
one cell at a time.
• A state register that stores the state of the Turing machine, one of finitely many.
There is one special start state with which the state register is initialized.
• A finite table of instructions (usually 5-tuples : qiaj→qi1aj1dk) that, given the state(qi)
the machine is currently in and the symbol(aj) it is reading on the tape tells the
machine to do the following in sequence:
•
•
•
Either erase or write a symbol (replacing aj with aj1), and then
Move the head (which is described by dk='L’, 'R’, or 'N’), and then
Assume the same or a new state as prescribed (go to state qi1).
• Universal Turing machine=a Turing machine that can simulate an arbitrary Turing
machine on arbitrary input.
Von Nuemann Model
Generations
• 1st generation : Vacuum tubes
• 2nd generation : Transistor
• 3rd generation : Integrated Circuit (IC)
• 4th generation : Microprocessor + (LSI, VLSI)
How to program?
• Machine code:
• Instructions executed directly by CPU
• Loads the AL register with the data 01100001
• 10110000 01100001
• B0 61
• Assembly:
• Low-level programming language
• Statement (Assembler) Machine code instruction
• Loads the AL register with the data 01100001
• MOV AL, 61h
; Load AL with 97 decimal (61 hex)
High-level
programming
language
• Strong abstraction
• Natural language elements
• Interpreted language
• Compiled language
program helloworld
print *, "Hello, world."
end program helloworld
Operating System
• A collection of software that manages
computer hardware resources and
provides common services for
computer programs
• Acts as an intermediary between
programs and the computer hardware
UNIX
• A multitasking, multi-user
computer operating system
originally developed in 1969 by a
group of AT&T employees at Bell
Labs
• First developed in assembly
language
• By 1973 had been almost entirely
recoded in C
• X-Windows
Unix and UNIX-Like
Open Source/Free
• GNU and FSF
• Linux
• Free BSDs
GNU Project
• GNU’s Not Unix
• A free software, mass collaboration project, announced
on 27 September 1983, by Richard Stallman at MIT
General Public Licence
• GPL is the most widely used free software license,
which guarantees end users (individuals, organizations,
companies) the freedoms to use, study, share (copy),
and modify the software.
Linux
• The History of Linux began in
1991 with the commencement
of a personal project by a
Finnish student, Linus Torvalds,
to create a new free operating
system kernel.
Linux Distribution