빌드 및 기본 실행
git clone https://github.com/sbeamer/gapbs.git
cd gapbs
make
공식 gapbs는 위의 레포이지만, 개인적으로는 아래의 수정한 레포를 사용한다.
시간과 관련하여 세 가지를 수정하였는데,
1. 시간 측정 함수를 steady clock으로 바꿔서 안정성을 가져가고,
2. 평균 시간 산출 방식을 산술 평균에서 기하 평균으로 변경하였으며,
3. 첫번째 실행을 average time 계산에서 제외하였다(warm-up)
https://github.com/hogumalatte/gapbs.git
GitHub - hogumalatte/gapbs: GAP Benchmark Suite_with geometric mean & steady clock
GAP Benchmark Suite_with geometric mean & steady clock - hogumalatte/gapbs
github.com
기본 테스트 실행:
./bfs -g 10 -n 1
그래프 생성 및 실행 방식
1. 메모리에서 직접 생성
./bfs -g 20 -n 51
- -g 29: 2^20 크기의 Kronecker 그래프 생성
- -n 51: 51번의 반복 실행
- 파일 I/O 없이 메모리에서 즉시 그래프 생성하여 실행
2. 그래프 파일 미리 생성 후 실행
그래프 생성
./converter -g 20 -b kron20.sg # serialized graph 생성
./converter -g 20 -e kron20.el # edge-list 생성
실행
./bfs -f kron20.sg
./bfs -f kron20.el
지원 파일 포맷
- .el: plain-text edge-list (텍스트 기반, 파싱 오버헤드 있음)
- .wel: weighted edge-list (가중치 포함)
- .gr: DIMACS format (표준화된 메타데이터 포함)
- .graph: Metis format (파티셔닝 최적화)
- .mtx: Matrix Market format (희소 행렬 형식)
- .sg: serialized pre-built graph (바이너리, 빠른 로딩, 성능 최적)
- .wsg: weighted serialized graph (가중치 포함 바이너리)
성능 최적화 팁
- 대용량 그래프는 .sg 포맷 사용 권장 (캐시 효율 높음, I/O 최소화)
- 메모리 직접 생성 방식(-g 옵션)은 -g 옵션을 크게 가져갈수록 빌드 시간이 오래걸리니 여러번 반복하는 실험이라면 미리 만들어두는 것이 좋다.
- 텍스트 기반(.el, .wel)은 작은 그래프나 디버깅용으로 적합
'연구실' 카테고리의 다른 글
| MLPerf Inference 설치 (0) | 2025.10.29 |
|---|---|
| AMD μProf 설치 및 간단 사용법 (ubuntu) (0) | 2025.10.14 |
| ubuntu cpu 성능 설정 및 모니터링 (0) | 2025.10.06 |
| SSH 세션이 끊겨도 프로세스가 끊기지 않게 하려면.. (0) | 2025.04.30 |
| perf 사용법 (0) | 2025.04.02 |