일전에 자바워크님이 언급하신 MicroQuill에 대해여 소개 글을 번역해서 올립니다.

( 그림이 안 보이면 아래의 링크된 사이트에서 보세요 )


http://jacking75.cafe24.com/Tip/Microquill_introduce.htm




http://www.xlsoft.com/jp/products/microquill/shsmp.html

번역 : 2007. 04. 03 최흥배 ( jacking75@gmail.com )

 

 

SmartHeap for SMP

 

"SmartHeap for SMP  multi-thread 어플리케이션을 멀티 CPU 시스템에서 비약적으로 고속화하기 위한 라이브러리를 제공합니다."

어플리케이션을 SmartHeap for SMP 라이브러리에서 재 링크하는 것만으로 어플리케이션의 퍼포먼스를 수배로 향상합니다.

SmartHeap for SMP 라이브러리는 인텔의 하이퍼스레드 테크놀러지에도 대응하고 있어 인텔(R) Xeon(TM) 프로세서, 인텔(R) Pentium(R) 4 프로세서상에서 실행하는 엔터프라이즈 어플리케이션의 퍼포먼스의 향상에도 도움이 됩니다.

SmartHeap for SMP를 사용하면 1 초간에 실행된 allocs/free 의 수가 CPU의 수가 증가하는 것과 동시에 선형적으로 증가합니다.


종래의 문제점】 컴파일러의  heap 매니저는 SMP 시스템용으로 설계되고 있지 않습니다
오늘의 컴파일러 런타임 라이브러리는 단일 프로세서 환경용으로 설계되고 있어 한 번에 1개의 스레드만이 heap (모든 스레드에서 상시 사용되는 중요한 자원입니다)에서 액티브 하게 됩니다. 이것은 한 번에 1개의 스레드만이 실행하는 단일 CPU 시스템에서는 문제로는 되지 않습니다. 그러나 복수의 스레드가 동시에  heap 요구를 실시하는 멀티 CPU 시스템에서는 1개의 스레드 이외의 모든 스레드는 heap 매니저에 의해서 블록 되기 위해서 멀티 CPU 의 이점을 활용할 수 없다 라고 하는 문제가 발생합니다.

【종래의 문제점】 heap 컨텐션은  멀티 CPU 시스템으로의 실행 속도를 저하시킵니다.
한층 더 나쁜 것으로는 스레드가 블록 될 때마다 스레드의 타임 슬라이스가 없어져 즉각적인(그리고 매우 고가의) OS 문맥 스윗치가 일으켜지는 것입니다. 복수의 스레드가 동시에 실행되는 멀티 CPU 시스템에서는 heap 블록이나 필연적인 문맥 스윗치가 발생할 가능성이 증대합니다. 그 결과 멀티 CPU OS 문맥 스윗치의 악순환 사이클에 의한 오버헤드를 불러 어플리케이션의 전체적인 퍼포먼스를 싱글 프로세서 레벨 이하까지 저하시킨다 입니다.

이 퍼포먼스의 무효화 문제는 heap의 사이즈나 heap 처리에 걸리는 시간에 관계없이 heap을 부르는 스레드를 2개 이상 가지는 어떠한 어플리케이션으로 발생할 가능성이 있습니다. , 거의 모든 어플리케이션이 이 문제에 대해서 취약합니다.

【솔루션】 SmartHeap for SMP heap 컨텐션을 막습니다.
컴파일러의 heap 매니저와 달리 SmartHeap for SMP는 복수의 스레드가 블로킹 없이 실행되는 것을 가능하게 하여 heap 컨텐션이나 거기에 따른 OS 오버헤드를 막습니다. 그 결과 SmartHeap for SMP를 사용하는 것으로 어플리케이션은 SMP 시스템상에서 실행했을 때에 확장성을 가집니다.

SmartHeap for SMP에서는 코드를 변경할 필요는 없습니다
SmartHeap for SMP
코드를 수정하는 일 없이 어플리케이션의 퍼포먼스를 향상합니다. 특별한 API를 사용하거나 복수의 풀을 부르기 위해서 어플리케이션을 재 구축 할 필요는 없습니다. SmartHeap for SMP 라이브러리에서 재 링크할 뿐입니다. 코드는 계속해 표준 malloc 또는 operator new를 호출합니다.

SmartHeap for SMP는 단일 프로세서 시스템에서도 고속화합니다
SmartHeap for SMP
는 단일 프로세서 시스템상에서도 효과를 발휘합니다. 이것은 수많은 벤치마크로 나타나고 있는 사실입니다. SmartHeap for SMP에서는 고객이 사용하는 시스템의 프로세서의 수에 관계없이 1개의 exe 파일을 작성해 시장에 팔 수 있습니다.

SmartHeap for SMP  NT , Solaris , HP-UX , AIX , IRIX, 그리고 Digital UNIX 에서 이용할 수 있습니다.

  • SmartHeap for SMP 벤치 테스트!
    SmartHeap for SMP
    의 벤치 테스트에 사용할 수 있는 원시 코드입니다( 대부분의 UNIX 플랫폼, Win NT가 지원 되고 있습니다) .

 

【우선은  시험해 주세요】 평가 유닛에 대해서는 이쪽의 에 문의해 주세요.

 

【채용예】 다음에 리스트 하는 기업이 SmartHeap for SMP를 사용해 어떻게 100 %에서부터 1000 % 의 퍼포먼스 향상을 달성하고 있을까를 봅시다: Netscape ,Sun ,Fidelity ,Microsoft ,IBM ,Lucent ,Goldman Sachs ,HP ,Veritas ,Merrill Lynch ,Dell ,MicroStrategy ,NASDAQ ,i2 ,BMC ,Bloomberg ,Computer Associates ,Xilinx ,Deutsche Bank ,NEON ,Palm ,Barclays ,Autodesk ,DoubleClick ,Credit Suisse First Boston ,E.piphany ,Cognos ,Allaire ,Openwave ,Ericsson ,UPS , 그 외.

"SmartHeap for SMP  4 CPU 시스템상에서 동작하는 우리의 어플리케이션 서버의 출력을 6 배에 고속화했습니다."
Yaron Goldberg
,ClickSoftware

" 우리의 상호 플랫폼에서는 SmartHeap for SMP에 의해 퍼포먼스가  60% 향상했습니다."
Thomas Hempel
,E.piphany

"Hyperwave 정보 서버의 퍼포먼스가 2 배가 되었습니다."
Gerbert Orasche
,Hyperwave

" 컴파일러의 디폴트 메모리 allocater를 사용했을 때에는 multi-thread화했을 경우에(코드 자체의 메모리 수요는 높지는 않았습니다만) 메모리 컨텐션에 의해 듀얼 프로세서 머신으로의 퍼포먼스가 감소하고 또 CPU 전체 사용율이 55%에 못 미친다라고 하는 결과였습니다. SmartHeap for SMP를 사용해 같은 코드를 실행했을 때에는 CPU 사용율이 95% 이상까지 올르고 출력을 83%까지 끌어올리는 것에 성공했습니다."
Randal Parsons
,Bankers Trust

" 저희들의 RightPoint 리얼타임 캠페인 서버는 단지 SmartHeap for SMP로 재 링크를 실시한 것만으로 SMP 시스템상에서 100% 이상의 퍼포먼스를 실현했습니다."
Earl Stahl 씨,RightPoint Software Inc.

"SmartHeap for SMP ReelTime (Pinnacle의 비선형 디지털 비디오 편집 플러그 인)의 전체적인 시스템 퍼포먼스를 100% 향상했습니다."
Brian Lanier
,Pinnacle Systems

"SmartHeap for SMP를 사용하기 전은 문맥 스윗치에 의해 저희들의 어플리케이션 퍼포먼스는 멀티 프로세서 시스템상에서 보기 좋게 저하했습니다. SmartHeap SMP를 사용한 다음에는 SmartHeap for SMP 의 적절한 메모리 메니지먼트에 의해 듀얼 프로세서 시스템에서 퍼포먼스는 111 % 향상했습니다."
Christopher M. Woods
,Financial Insight Systems, Inc.

"SmartHeap for SMP는 저희들이 거느리고 있던 멀티 프로세서 시스템으로의 확장성 문제를 해결하기 위해서 매우 도움이 되었습니다."
William Adiletta
,OptiMark Technologies Inc.

 

 

 

 

 

 

http://www.xlsoft.com/jp/products/microquill/sh.html

SmartHeap 8

SmartHeap 8  multi-thread 어플리케이션용으로 큰 폭으로 메모리 메니지먼트 퍼포먼스를 개선해 보다 효과적인 heap 디자인을 사용합니다. 신기능의 자세한 것은 이쪽!

SmartHeap은 이하의 이점을 제공하는 ANSI 호환의 malloc/operator new 라이브러리입니다.

  • 고속 ( 컴파일러 부속 라이브러리와 비교해서 3에서 100 배의 속도를 실현합니다)
  • 이식성 (Windows, Linux ,Solaris ,HP-UX ,IBM-AIX ,Dec OSF Tru64 ,SGI Irix)
  • 높은 신뢰성
  • 복수의 메모리 풀을 지원
  • 고정 사이즈의 allocater를 포함한다
  • 스레드 세이프

, SmartHeap은 메모리 리크, over-write, 더블 프리, 와일드 포인터, 메모리 부족, 프리가 된 메모리에의 참조 그리고 그 외의 메모리 에러를 검출하는 종합적인 메모리 디버그 API를 포함합니다.

SmartHeap 벤치마크

SmartHeap 일반판과 SunOS 4.1 컴파일러 allocater의 퍼포먼스 비교

상기의 벤치마크의 테스트 프로그램은  heap이 특정의 사이즈에 이를 때까지 new / delete 오퍼레이션을 랜덤에 호출하여 8에서 100바이트 사이즈의 오브젝트를 랜덤에 작성합니다. 그 후, 프로그램은 모든 오브젝트를 삭제합니다.

SmartHeap 테크니컬 정보

SmartHeap 라이센스에 대해

SmartHeap for SMP

SmartHeap for SMP는 멀티 프로세서 시스템 전용으로 최적화되고 있습니다. 자세한 것은 이쪽 .

SmartHeap은 고속으로( 컴파일러로 제공되는 라이브러리의 3에서 100 배의 속도) , 호환성이 있으며(Windows, Linux, Solaris, HP-UX, IBM-AIX, Dec OSF Tru64, SGI Irix) , 신뢰성 있는 ANSI 표준의 malloc/operator new 라이브러리입니다. SmartHeap은 고정 사이즈의 allocator를 포함한 복수의 메모리 풀을 지원 하며 한편 스레드 세이프입니다. SmartHeap에는 또 포괄적인 메모리 디버그 API가 포함되어 leakage, overwrites, double-frees, wild pointers, out of memory, references to previously freed memory 및 그 외의 메모리 에러를 검출합니다.


신고
by 흥배 2008.03.20 23:29
| 1 |

티스토리 툴바