YDL의 PS3버전 출시로 게이머들에게 알려진 Terra Soft에서 PS3를 이용한 클러스터링 솔루션을 판매한다. 6 node와 36 node를 판매중이며, 각각 1TFlops와 5TFlops의 성능을 제공한다고 한다. Head node로는 IBM p5 185을 사용하며, 기가빗이더넷으로 연결된다. 궁금한 점은 분명 같은 Market Segmentation에 IBM의 셀 블레이드 서버군이 존재하는데, Sony와 IBM은 PS3의 서버 시장판매에 대해 어떻게 얘기되었는지 모르겠다. 다만, 이 제품의 가격은 만만치 않은데, 6 node가 $18,325, 36 node가 $40,000에 판매된다. 회사에 놔두면 노드 1개 클러스터링에서 풀어서 몰래 게임할 개발자들 많을 꺼 같은데?

사이트 바로가기
YOUR COMMENT IS THE CRITICAL SUCCESS FACTOR FOR THE QUALITY OF BLOG POST
  1. 밑줄 2007.04.17 00:20  댓글주소  수정/삭제  댓글쓰기

    우와 5테라플롭스면 국내에서 3번째 정도 하겠는데요?
    1등이 기상청이고 2등이 서울대 슈퍼컴으로 알고 있는데
    저 정도 성능에 가격이 4만불이면 적절한거 같고.. 궁금하네요 ㅋㅋ

    • 미니미 2007.04.17 02:48  댓글주소  수정/삭제

      top500.org 보니까 진짜 4위정도 하네요.
      3위인 SDS의 슈퍼돔서버가 Rmax 3.6테라플롭스, Rpeck가 6.7테라플롭스이네요. Personal Computing과 Super Computing의 차이가 이렇게 좁혀졌을줄은 몰랐네요.

  2. 밑줄 2007.04.17 09:29  댓글주소  수정/삭제  댓글쓰기

    아.. 아침에 다시 보니 생각나네요. 예전에 봤던 기사인데
    http://www.kbench.com/news/?&pr=3&no=38647
    여기 보시면 AMD 듀얼코어 옵테론이 1테라 돌파했었죠.
    기술 발전이 정말 놀랍습니다 ^_^

  3. miriya 2007.04.19 11:28  댓글주소  수정/삭제  댓글쓰기

    신기하군요.. 셀프로세서가 강력하다는 소리는 들었지만 게임기를 클러스터링하다니 ㅎㅎ

    • 미니미 2007.04.19 12:32  댓글주소  수정/삭제

      게임기를 클러스터링하는 것은 PS2시절부터 있었습니다만, 너무나 작은 메모리때문에 실용성이 떨어졌었죠. PS3는 IBM에서 고가에 판매하는 셀브레이드서버랑 사양면에서 큰 차이가 없으니까 나름 경제적(?)인 솔루션이죠.



유수 벤치마크 사이트들에서 SuperPI는 PC의 성능을 가늠하기 위한 벤치마크 도구로서 사용되고 있다. 특히 1M 자리수의 PI계산 속도는 CPU의 FPU 성능의 가늠자처럼 인식되고 있는데, 필자는 SuperPI는 이같은 역할을 수행하기엔 시대에 뒤떨어진것이 아닌가 생각한다.

그 이유로는,

- SuperPI(mod버전포함)는 Single-threaded Application으로서 대세인 다중코어 CPU의 성능을 100% 사용하지 못한다.
- 오픈소스가 아니라서 변화하는 환경에 따른 적용이 불가능하다.

일례로 필자가 새로 장만한 AMD64 4000+와 AMD64 X2 3800+로 SuperPI 1M 처리 속도를 비교해보면,4000+가 10초가까이 빠른 속도를 나타냈다. 이 같은 문제는 멀티코어나 비대칭벡터프로세서의 정확한 성능을 가늠할 수 없을뿐만아니라, 유저들이 잘못된 성능 비교를 보고 혼동하게 만들 수 있다.

MacResearch에 올라온 플스3와 맥과 인텔을 비교해놓은 PI 벤치마크. 저자는 Cell의 SPE를 사용하지 않았다는 것을 명시하고 있지만, 이러한 벤치마크는 낚시제목과 함께 여러 사이트들를 돌면서 유저들을 혼동시킨다. (제발 퍼가지 마세요.)

필자가 생각하는 새로운 SuperPI는,

- 오픈소스
- 병렬/직렬처리를 병행할 수 있는 알고리즘
- 메모리 용량에 최대한 독립적
- 확장명령어셋지원(SSE,SSE2,SSE3,3D NOW!, ...) 및 옵션으로 on/off가능
- GPGPU(General Purpose GPU) 혹은 CUDA 지원으로 CPU와 GPU의 비대칭 병렬처리 옵션
- 플랫폼 독립적으로 Windows, Linux등에서 구동가능
- Cell Broadband Engine(PS3)의 PPE/SPE 비대칭 프로세싱 지원

정도로 SuperPI처럼 PI 값의 정확성보다는 시스템의 활용 측면을 더 바라봐야한다는 생각이다.
병렬처리로 PI를 구하는 대표적인 알고리즘은 Monte Carlo Method지만 기타 다른 알고리즘도 고려해볼 만하다. 특히 다중코어의 Multi-threading이나 비대칭코어의 Multi-passing이나GPU의 고속 행렬연산 pipe를 잘 응용한다면 서로 다른 아키텍쳐의 성능을 비교해 볼 수 있는 벤치마크 프로그램이자 참고용소스로서 가치가 있지 않을까 싶다.

Project PI (오픈소스 PI 프로젝트) 사이트 바로가기

Monte Carlo Methods in Parallel Computing 사이트 바로가기

PI 생성 알고리즘의 Single-threaded Multi-threaded 비교 예제

FFT와 AGM(Monte Carlo) 이용한 PI 계산 사이트 바로가기
YOUR COMMENT IS THE CRITICAL SUCCESS FACTOR FOR THE QUALITY OF BLOG POST
  1. miriya 2007.03.07 08:15  댓글주소  수정/삭제  댓글쓰기

    엄청 간단한 프로그램인줄 알았는데 그것도 아닌가 보군요..
    친구와 파이속도 비교하며 일희일비 하던일이 생각납니다.
    요즘에는 뭐.. 램 없이나 해야겠어요~

    • 미니미 2007.03.07 12:04  댓글주소  수정/삭제

      요즘은 간단한 프로그램으로는 다양한 하드웨어를 객관적으로 벤치마킹하기 힘든거 같아요. SuperPI도 구조의 단순함이 최신 하드웨어를 벤치마킹하기에 적합하지 않는 것이지요.



이번에도 한참 늦은 정보지만, 흥미로와 올려본다.
cell.scei.co.jp에서는 CBE(Cell Broadband Engine™)에 대한 자료를 공개하고 있는데,
게임기 외에 다른 용도를 쓰이길 원하는 Open Architecture라서 Cell 칩의 구동원리에 대한
구체적인 자료들이 많다. (일어 영어 문서 지원)

Cell Broadband Engine™ Architure

사이트를 살펴보다가, CBE(Cell Broadband Engine™) Architure ver. 1.00 문서의
CBEA-Compliant Processor(CBEA규약에 적합한 프로세서)를 정의하는 부분이 눈에 띄었는데,
여기보면 참으로 광대한 상상화가 등장한다.

우주와 같은 이 상상도는...?

이걸 보면 '향후 10년동안 나올 프로세서는 이정도 범위 안에서 소화되겠지'라고 예상하고 그려둔
Hyper-tech document 가 아닌가라는 생각이 든다. 왜 인지는 PS3에 쓰인 최초 Cell Chip의
구조를 보면 알게된다.

PS3 Cell Chip의 구조

PPE 1개에 SPE 8개. 이것이 우리가 아는 Cell 칩이다.

PS3는 7개의 SPE를, 그리고 차후에 발표될 Consumer Electronics는 6개의 SPE를 가질 예정이라고 한다. 이 칩을 위의 그림대로 분류해보자면,

- 1개의 SG(SPE Group) with 8 SPEs
- 1개의 PG(PPE Group) with 1 PPU

SPE Group이 몇개인가는 Chip Specification에 나와있질 않아서 모르겠지만, IBM에서 정리한
SPE group의 정의를 보면,

– a collection of SPE threads that share scheduling attributes
– there is a default group with default attributes
– each SPE thread belongs to exactly one SPE group

때문에, PS3에 쓰일 Chip은 1개의 그룹일 가능성이 높다.
(아니라면 개개의 Thread에 대한 관리를 PPE에서 매개전달해야 함)

PS3 Chip의 철학

그렇다면, 왜 PS3의 Chip에는 복수개의 PPE가 아닌 복수개의 SPE가 들어갔을까?

이 부분은 PS3가 지향하는 목표가 "가정용 종합 엔터테인먼트"라는 것을 생각하면 알 수 있다.
가정에서 일어나는 대부분의 멀티미디어(게임포함) 행위는 스트리밍의 형태로 이해할 수 있다.
3D게임의 방대한 폴리곤, 텍스쳐의 스트리밍, 물리엔진에 연산되는 방대한 양의 물리적 변수의
스트리밍, HD로 출력되는 HDMI신호의 스트리밍, 그리고 HDTV의 방대한 양의 영상 스트리밍

미래의 모든 멀티미디어 기술은 복잡하다기보단 단순하고, 방대한 양의 신호와 이를 일괄적으로
해석하는 일에 포커스한다. PS3는 머리가 많은 천재형이라기보단 다리가 많은 일벌레형에 가깝다.

미래 Cell 칩에 대한 상상

그럼 다시 본론으로 돌아와서,
CBEA문서에서는 "n의 PPU를 가진 n개의 PG"와 "n개의 SPE를 가진 n개의 SG"를 정의하고 있다.
그리고 PS3의 Cell Chip은 레퍼런스 구조에 비하면 PG, SG가 필요없을 정도로 작은 스케일임을
알 수 있다. 그렇다면, 대략 예상해볼 수 있는 "현실적인" Cell 칩의 구조도는...

- 8개의 SG (각각의 SG는 8개의 SPE로 구성);;;
- 2개의 PG (각각의 PG는 4개의 PPU로 구성);;;

현존하는 4Ghz의 속도와 SPE당 2개의 Instruction, 4번의 Float/Integer 계산능력으로만 환산해도
4Ghz x 4(계산능력) x 2(Instruction) x 8(SPEs) x 8(SGs) = 2048 GFlops = 2 TFlops;;;
물론, 현존하는 최고의 슈퍼컴퓨터인 eServer Blue Gene의 280600 GFlops에는 택도 없이 모자라지만
하나의 칩으로 나올 수 있는 성능으로는 상당하다고 할 수 있겠다.

물론 게임기로 이러한 성능을 사용할 일은 거의 없겠지만, IBM에서 PowerPC군을 Cell로 대체한다면,
앞으로 이러한 프로세서를 볼날이 머지 않았을 것이다.

Cell Broadband Engine™ 사이트 바로가기

Cell Chip Programming Guide 다운받기

Cell Processor 한글 공식 설명 자료 by IBM

YOUR COMMENT IS THE CRITICAL SUCCESS FACTOR FOR THE QUALITY OF BLOG POST