문제
상신이는 컴퓨터구조론 과목 시간의 컴퓨터 성능 향상을 계산하는 과제를 해야한다.
그런데, 그래프를 그리기 위해 찾아야하는 값이 너무 많아서 일일이 계산하기가 너무 힘들었다.
귀차니즘에 걸려버린 상신이를 위해 계산해주는 프로그램을 작성해주자.
< 문제 >
아래 조건에 따라, 암달의 법칙으로 병렬화 가능한 부분이 40%, 60%, 80%, 95%일 때, 얻을 수 있는 이상적인 성능 향상 곡선을 그리시오.
+ x축은 프로세서의 개수, y축은 성능 향상(s)를 나타낸다.
+ 프로세서의 수는 1~128까지만 고려한다.
코드
# 성능 향상 s를 계산하는 함수
def s(n, f):
return n / ((1-f) * n + f)
f1 = 40 / 100
f2 = 60 / 100
f3 = 80 / 100
f4 = 95 / 100
f_list = [f1, f2, f3, f4]
n_list = [1, 2, 4, 8, 16, 32, 64, 128]
for f in f_list:
print()
for n in n_list:
print(f"병렬화 가능한 부분이 {f * 100}% 일 때, {n}개의 프로세스로 병렬화한다면, 성능이 {s(n,f):0.2f}배 향상된다.")
print()
'Anything Programming' 카테고리의 다른 글
[Python] 내 아이가 다른 인종은 아닐거야 .. (2) | 2023.08.22 |
---|