본문 바로가기

Anything Programming

[Python] 암달의 법칙 실습 문제 계산하기

문제

상신이는 컴퓨터구조론 과목 시간의 컴퓨터 성능 향상을 계산하는 과제를 해야한다.

 

그런데, 그래프를 그리기 위해 찾아야하는 값이 너무 많아서 일일이 계산하기가 너무 힘들었다.

 

귀차니즘에 걸려버린 상신이를 위해 계산해주는 프로그램을 작성해주자.

 

< 문제 >

아래 조건에 따라, 암달의 법칙으로 병렬화 가능한 부분이 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