문서 편집 권한이 없습니다. 다음 이유를 확인해주세요: 요청한 명령은 다음 권한을 가진 사용자에게 제한됩니다: 사용자. 문서의 원본을 보거나 복사할 수 있습니다. [[분류: 시스템 벤치마크]] == 개요 == Princeton Application Repository for Shared-Memory Computers(PARSEC)은 프린스턴 대학교에서 만든 벤치마크 툴로, 무료로 다양한 범위의 컴퓨팅 벤치마크를 할 수 있게 한다. PARSEC은 병렬컴퓨팅 환경에서 다양한 컴퓨팅 파워를 체크할 수 있도록 설계되었다. PARSEC은 현재 Version 3까지 나와있으며 다음과 같은 벤치마크를 돌릴 수 있다. {| class="wikitable" |+ !프로그램 이름 !적용 분야 !병렬화 모델 !병렬화 정도 !워킹셋 크기 !데이터 공유 !데이터 교환 |- |blackscholes |Financial Analysis |data-parallel |coarse |small |low |low |- |bodytrack |Computer vision |data-parallel |medium |medium |high |medium |- |canneal |Engineering |unstructured |fine |unbounded |high |high |- |dedup |Enterprise stroage |pipieline |medium |unbounded |high |high |- |facesim |Animation |data-parallel |coarse |large |low |medium |- |ferret |Similarity search |pipeline |medium |unbounded |high |high |- |fluidanimate |Animation |data-parallel |fine |large |low |medium |- |freqmine |Data mining |data-parallel |medium |unbounded |high |medium |- |raytrace |Rendering |data-parallel |medium |unbounded |high |medium |- |streamcluster |Data mining |data-parallel |medium |medium |low |medium |- |swaptions |Financial anlysis |data-parallel |coarse |medium |low |low |- |vips |Media processing |data-paralell |coarse |medium |low |medium |- |x264 |Media processing |pipline |coarse |medium |high |high |} ==설치 방법== *PARSEC 3 다운로드 wget http://parsec.cs.princeton.edu/download/3.0/parsec-3.0-core.tar.gz git clone https://github.com/cirosantilli/parsec-benchmark.git # 이 버전은 우분투 22.04에서도 돌릴 수 있게 여러 버그들을 고친 버전임. <참고용> *Unpakc PARSEC 3 tar -xzf parsec-3.0.tar.gz; cd parsec-3.0 *환경 변수 설정 bash; source env.sh # PARSEC은 bash shell에서만 env.sh이 정상적으로 작동함. ./configure # github에서 다운 받은 경우 test파일들이 설치되어 있지 않기 때문에 ./configure로 설치해야 함) *Build/Run/Uninstall parsecmgmt -a build -p streamcluster (all for building all benchmarks) -n <num of thread> parsecmgmt -a run -p streamcluster (all for running all benchmarks) -n <num of thread> parsecmgmt -a uninstall -p streamcluster ==벤치마크 돌리는 법== parsecmgmt -a run -p <test name> -i <input setting> -n <thread num> -c <build conf> 에서 i에 해당하는 인자를 어떤것을 넣느냐에 따라서 벤치마크의 크기를 정할 수 있다. *test: 제일 작은 테스트용 벤치마크 설정 파일 입력 *simdev: 매우큰 실제 input과 비슷한 벤치마크 설정 *simsmall, simmedium, simlarge: 각각 1s, 5s, 15s 정도 돌릴 수 있도록 고려된 벤치마크 설정 *native: 대략 15분 정도 걸리는 실제와 같은 input을 사용하는 벤치마크 설정 이때 -c 옵션을 통해서 어떤 build configuration을 줄지 설정할 수 있다. 기본 build configuration은 gcc, gcc-hooks, gcc-serial 그리고 icc이며, gcc-openmp, gcc-pthreads, gcc-tbb와 같은 specific parallelization옵션들을 선택할 수 있다. 만약 peak memory usage와 같은 다른 벤치마크 결과도 보고 싶을 경우에는, "/bin/usr/time -v"를 -s 옵션을 통해서 주면 벤치마크가 사용할 default tool이 바뀌어서 peak memory usage도 출력해 준다. parsecmgmt -a run -p bodytrack -i simlarge -s "/usr/bin/time -v" ==에러 핸들링== 1. ferret 에서 "error: ‘HUGE’ undeclared (first use in this function)": 모든 HUGE를 DBL_MAX로 교환 하면 된다. 종률 선배(yulistic)님의 스크립트를 사용하면 다음과 같이 편하게 교환할 수 있다. grep -rl "HUGE" pkgs/apps/ferret | xargs sed -i "s/HUGE/DBL_MAX/g" grep -rl "HUGE" pkgs/netapps/netferret | xargs sed -i "s/HUGE/DBL_MAX/g" ==참고== #https://parsec.cs.princeton.edu/parsec3-doc.htm #https://yulistic.gitlab.io/2016/05/parsec-3.0-installation-issues/ #https://ve0x10.in/blog/2022/running-parsec-benchmark/ PARSEC 문서로 돌아갑니다.