안 쓰던 블로그

TIS-100 PARALLELIZE 도전과제 공략 본문

취미/TIS-100 공략

TIS-100 PARALLELIZE 도전과제 공략

proqk 2020. 6. 28. 14:03
반응형

Solve SIGNAL AMPLIFIER in fewer than 100 cycles

 

원래 단순하게 풀면 160사이클씩 나오는 신호증폭기 문제를 100사이클 이하로 풀어야 하는 도전과제다

 

근데 이미 코드가 값을 받는다->두배->옮긴다 가 전부라

아니 여기서 뭘 더 줄여? 라고 생각할 수도 있는데 '병렬처리' 개념만 알면 쉽게 풀린다

 

1. 값을 ACC에 저장한다

2. 자기 자신을 더한다(두 배)

3. ACC값을 넘긴다

 

이 3사이클을 동시에 2개의 노드에서 실행한다

그러면 2개의 노드는 각자 다른 숫자를 두 배 하는 작업을 한다

 

예를 들어 첫 번째 수인 66을 오른쪽 노드가 두 배 작업을 하고 있을 때

아래 노드는 이미 그 다음 수인 34를 두 배 작업을 하고 있는 것

 

한 번에 두 개씩 처리하니 사이클이 약 절반으로 줄어들 수 있게 되는 것이다(84사이클)

반응형
Comments