C LANGUAGE TECHNOLOGY

【C/C++/Java言語】OS研究の性能評価でよく利用されるベンチマーク

悩んでいる人

C/C++/Java言語で開発されたOS研究の性能評価でよく利用されるベンチマークを教えて!

こういった悩みにお答えします.

本記事の信頼性

  • リアルタイムシステムの研究歴12年.
  • 東大教員の時に,英語でOSの授業.
  • 2012年9月~2013年8月にアメリカのノースカロライナ大学チャペルヒル校コンピュータサイエンス学部2021年の世界大学学術ランキングで20位)で客員研究員として勤務.C言語でリアルタイムLinuxの研究開発
  • プログラミング歴15年以上,習得している言語: C/C++Solidity/Vyper,Java,Python,Ruby,HTML/CSS/JS/PHP,MATLAB,Assembler (x64,ARM).
  • 東大教員の時に,C++言語で開発した「LLVMコンパイラの拡張」,C言語で開発した独自のリアルタイムOS「Mcube Kernel」GitHubにオープンソースとして公開

こういった私から学べます.

本記事は以下の記事を理解していることを前提とします.

C言語 カーネルモデル OS
OSアーキテクチャ(カーネルモデル)とC/C++言語で開発された代表的なOS

こういった悩みにお答えします. こういった私から学べます. OSアーキテクチャ(カーネルモデル)とC/C++言語で開発された代表的なOSを紹介します. 本記事を読むとOSの過去,現在,未来がわかります ...

続きを見る

C言語 分散OS
【C/C++言語】代表的な分散OS

こういった悩みにお答えします. こういった私から学べます. 本記事は以下の記事を理解していることを前提とします. 目次1 分散OSとは2 C/C++言語で開発された代表的な分散OS2.1 【C言語】A ...

続きを見る

C言語 リアルタイムOS
【C/C++言語】代表的なリアルタイムOS【組込みOS】

こういった悩みにお答えします. こういった私から学べます. C/C++言語で開発されたリアルタイムOSを紹介します.(組込みOSを含みます.) リアルタイムOSは時間制約を満たすために設計されたOSで ...

続きを見る

【C/C++/Java言語】OS研究の性能評価でよく利用されるベンチマーク

C/C++/Java言語で開発されたOS研究の性能評価でよく利用されるベンチマークを紹介します.

主要な参考論文は以下になります.

Webアプリケーションのベンチマーク

Webアプリケーションのベンチマークを紹介します.

【C言語】Apache Benchmark(ab)

Apache Benchmark(ab)は,Apache Hypertext Transfer Protocol(HTTP)サーバのベンチマークです.

現在のApacheのインストールがどのように動作するかの印象を与えるように設計されています.

特に,Apacheが一秒間にどれだけのリクエストを処理できるかを測定します.

【Java言語】Apache JMeter

Apache JMeterは,クライアントサーバシステムの性能測定および負荷テストを行うJavaアプリケーションです.

HTTPレスポンスの内容の妥当性を判定することもできるため,性能テストだけでなく機能テストに利用できます.

システムのベンチマーク

システムのベンチマークを紹介します.

システムのベンチマークは,CPUやメモリの性能を測定するために利用されます.

【C言語】Dhrystone

Dhrystoneは,システム(整数)プログラムの性能に注目した合成ベンチマークです.

合成ベンチマークとは,一般的なプログラムを統計的に分析して,その負荷を再現するよう注意深く設計された単純なプログラムです.

Dhrystoneのコードはこちらからダウンロードできます.

【C言語】Embedded Microprocessor Benchmark Consortium(EEMBC)

Embedded Microprocessor Benchmark Consortium(EEMBC)は,組込みシステムで使われるハードウェアやソフトウェアの性能指標となるベンチマークを策定する非営利業界団体です.

EEMBCで策定している代表的なベンチマークは以下になります.

【C言語】Memcached

Memcachedは,汎用分散メモリキャッシングシステムです.

データベースやAPIなどの外部データソースの読み込み回数を減らすためにデータやオブジェクトをRAMにキャッシュすることで,動的なデータベース駆動型ウェブサイトを高速化するためによく使われます.

Memcached Architectureの解説動画はこちらです.

【C言語】NAS Parallel Benchmarks(NPB)

NAS Parallel Benchmarks(NPB)は,NASAが開発している並列スーパーコンピュータの性能を評価するために設計されたベンチマークです.

NPBのベンチマークは以下になります.

  • MultiGrid(MG)
  • Conjugate Gradient(CG)
  • Fast Fourier Transform(FT)
  • Integer Sort(IS)
  • Embarrassingly Parallel(EP)
  • Block Tridiagonal(BT)
  • Scalar Pentadiagonal(SP)
  • Lower-Upper symmetric Gauss-Seidel(LU)
  • Unstructured Adaptive(UA)
  • Data Cube operator(DC)
  • Data Traffic(DT)

【C/C++言語】PARSEC Benchmark Suite

PARSEC Benchmark Suiteは,マルチスレッドプログラムで構成されるベンチマークスイートです.

PARSECは,チップ型マルチプロセッサ向けの次世代共有メモリプログラムの代表として,新しいワークロードに焦点を当てて設計されています.

※PARSECは,Princeton Application Repository for Shared-Memory Computersの略です.

PARSEC Benchmark Suiteのベンチマークは以下になります.

  • blackscholes
  • bodytrack
  • canneal
  • dedup
  • facesim
  • ferret
  • fluidanimate
  • freqmine
  • raytrace
  • streamcluster
  • swaptions
  • vips
  • x264

【C/C++/Java言語】SPEC Benchmarks

SPEC Benchmarksは,最新世代のコンピューティングシステムの性能とエネルギー効率を評価するための標準的なベンチマークです.

2022年9月現在のベンチマークは以下になります.

  • Cloud
    • SPEC Cloud IaaS 2018
  • CPU
    • SPEC CPU 2017
  • Graphics and Workstation Performance
    • SPECviewperf 2020
    • SPECworkstation 3.1
    • SPECapc for Maya 2017
    • SPECapc for PTC Creo 3.0
    • SPECapc for Solidworks 2021
    • SPECapc for Solidworks 2020
  • High Performance Computing: OpenMP, MPI, OpenACC, OpenCL
    • SPEC ACCEL
    • SPEChpc 2021
    • SPEC MPI 2007
    • SPEC OMP 2012
  • Java Client/Server
    • SPECjbb 2015
    • SPECjEnterprise 2018 Web Profile
    • SPECjEnterprise 2010
    • SPECjvm 2008
  • Storage
    • SPECpower_ssj 2008
    • Other SPEC benchmarks incorporating power measurement
      • SPEC ACCEL
      • SPEC Chauffeur WDK
      • SPEC CPU 2017
      • SPEC Server Efficiency Rating Tool(SERT)
      • SPEC OMP 2012
      • SPEC VIRT_SC 2013
  • Virtualization
    • SPECvirt Datacenter 2021
    • SPEC VIRT_SC 2013
  • SPEC Tools
    • SPEC SERT Suite 2.0
    • SPEC SERT Suite 1.1.1
    • SPEC Chauffeur WDK Tool
    • PTDaemon

【C++言語】SPLASH-2

SPLASH-2は,スタンフォード大学で開発された並列共有メモリアプリケーション向けベンチマークのことです.

※SPLASHはStanford Parallel Applications for Shared-Memoryの略です.

SPLASH-2にはフルアプリケーションとカーネルの2種類のコードが含まれています.

Linuxのベンチマーク

Linuxのベンチマークを紹介します.

【C言語】LEBench

LEBenchは,Linuxカーネル向けマイクロベンチマークです.

具体的には,LEBenchは以下の項目を評価します.

  • contextswitch
  • small-read
  • med-read
  • big-read
  • small-write
  • med-write
  • big-write
  • mmap
  • small-munmap
  • med-munmap
  • big-munmap
  • fork
  • big-fork
  • thrcreate
  • send & recv
  • big-send & recv
  • select
  • poll
  • epoll
  • big-select
  • big-poll
  • big-epoll
  • small-pagefault
  • big-pagefaut

SOSP 2019でのLEBenchの講演動画はこちらです.

【C言語】Timed Linux Kernel Compilation

Timed Linux Kernel Compilationは,Linuxカーネルのビルド時間を計測する性能評価手法です.

Linuxカーネルは数十分~1時間程度かかるので,カーネルのスケジューラが重要になります.

Linuxカーネルのビルド方法を知りたいあなたはこちらからどうぞ.

C言語 Linuxカーネル ビルド
【C言語】Linuxカーネルのビルド方法と新しいシステムコールの実装方法

こういった悩みにお答えします. こういった私から学べます. 目次1 Linuxカーネルのビルド方法1.1 GRUBを編集して起動するLinuxカーネルを指定1.2 Linuxカーネルのビルド環境の構築 ...

続きを見る

参考:PC(主にWindows,macOS)用のベンチマーク

OS研究ではないですが,PC(主にWindows,macOS)用のベンチマークは以下の記事で紹介されています.

あなたのPCの性能を測定したい時におすすめです!

まとめ

C/C++/Java言語で開発されたOS研究の性能評価でよく利用されるベンチマークを紹介しました.

OS研究に是非利用しましょう!

C言語を独学で習得することは難しいです.

私にC言語の無料相談をしたいあなたは,公式LINE「ChishiroのC言語」の友だち追加をお願い致します.

私のキャパシティもあり,一定数に達したら終了しますので,今すぐ追加しましょう!

友だち追加

独学が難しいあなたは,元東大教員がおすすめするC言語を学べるオンラインプログラミングスクール5社で自分に合うスクールを見つけましょう.後悔はさせません!

-C LANGUAGE, TECHNOLOGY
-, , , ,