1. SciPy
SciPy는 계산을 중심으로 하는 파이썬 라이브러리 중 하나로, NumPy, Matplotlib, pandas, SymPy와 같이 자주 연계되는 라이브러리입니다.
2. NumPy와 연관성
SciPy는 NumPy의 상위 영역에 속하는 라이브러리입니다. SciPy는 기본적인 바탕은 NumPy의 array를 기본 자료형으로 사용합니다. 이때 SciPy의 일부 기능이 NumPy와 중복되기도 하지만, SciPy가 더 다양한 기능을 제공합니다.
[ConFer]
중복되는 기능으로는 선형대수로 활용되는 NumPy의 numpy.linalg와 SciPy의 scipy.linalg 그리고 이산 푸리에 변환인 NumPy의 numpy.fft와 SciPy의 scipy.fftpack이 있습니다.
NumPy와 SciPy 등과 같은 라이브러리는 수치계산을 위한 패키지로 다른 라이브러리에 비해 성능이 중요합니다. 이때 성능은 계산속도를 의미합니다. 어떤 작업이 수행된 시간을 측정하는 것은 CPU time과 wall time으로 구분합니다.
이때 CPU time은 작업을 수행한 프로세서의 시간을 합산한 시간으로 time.process_time()
에서 리턴된 값의 차이로 계산합니다.
이와 달리, wall time은 작업을 수행한 시간으로 time.perf_counter()
이나 time.time()
에서 리턴되는 값입니다. 이때, time_perf_counter()
가 보다 정확한 값을 제시합니다.
[ConFer]
예를 들어, 어떤 연산 작업을 4개의 코어(프로세서)에서 동시에 진행하여 2초라는 시간이 걸렸다면, CPU time은 4초이고, wall time은 2초입니다. 하지만 작업을 수행하는 개별 프로세서는 중간에 쉬는 타임이 존재하므로 단순히 (wall time)$ \times $(코어 개수)로 CPU time이 계산되지는 않습니다.
'Engineering with Python' 카테고리의 다른 글
파이썬 Matplotlib 기본 (0) | 2023.01.08 |
---|
댓글