Personal Mobile Device(PMD)
Clouding computing
high-level language
c나 java같은 으용프로그램을 만들 때 사용하는 언어이다.
Compiler
작성한 HLL을 기계가 이해할 수 있는 코드로 변환해주는 것이다.
Operating System
변환된 코드를 돌릴 수 있게 매개체 역할을 해주는 것이다.
processor, memory, I/O controllers
Peocessor(CPU)
메모리
Response time(실행 시간)
실행하는데 얼마나 걸렸는가?
Throughput(처리율)
기준 시간마다 몇개의 일을 했는가?
성능 = 1 / 실행 시간
X가 Y보다 n배 빠르다.
x의 성능 / Y의 성능 = Y의 실행시간 / X의 실행 시간 = n
실행 시간에는 연산 시간이나 입출력 시간같은 여러 영향을 주는 요소들이 있습니다. 하지만 우리는 성능을 측정하기 위해 CPU time만 이용해서 측정하겠습니다. CPU time 중에서도 system call 같은 system COU time은 제외한 user CPU time만으로 가정하겠습니다.
CPU time = CPU Clock Cycles * Clock Cycle Time(Clock period)
= CPU Clock Cycles / Clock Rate(Clock frequency)
성능 개선 방법
- Clock 주기를 줄인다.
- Clock 주파수를 증가 시킨다.
- 대부분 두개를 한꺼번에 향상시킬 수 없다.
CPI = Clock cylce / instruction count
CPU time = CPU Clock Cycle * Clock Cycle Time
= CPI * Instruction count * CLock Cycle Time
= CPI * Instruction count / Clock rate
성능을 높이기 위해 클럭 주파수를 높였는데 발열 문제로 한계에 직면했습니다. 따라서 멀티프로세서라는 개념이 나오기 시작했습니다.
프로그래밍하기 어렵다.
여러가지 연산을 잃어버리고 한가지 일에만 집중해 성능을 높인다. (맞춤형 연산)
성능 비교를 위해 만들어졌다.
전력을 고려해서 성능을 비교한다.
슈퍼 컴퓨터의 연산 능력을 비교한다.
전력을 고려해서 슈퍼 컴퓨터의 연산 능력을 비교한다.
행렬연산에서 TOP 500에 비해 분산된 행령의 연산을 기준으로 슈퍼 컴퓨터의 연산 능력을 비교한다.
Amdahl's Law
성능향상을 시킬 수 없는 부분이 크면 클 수록 전체 향상을 시킬 수 있는 부분이 줄어든다.
자주 일어나는 것을 최적화를 해야한다.