Anda menginginkan afinitas prosesor (atau afinitas CPU ).
Syscall yang relevan adalah sched_setaffinity (2) , tetapi Anda harus menggunakannya melalui pthread_set_affinity_np (3) jika Anda ingin kode tolok ukur Anda untuk itu.
Perintah terkait adalah tasket (1) dan Anda mungkin menggunakannya pada perintah yang ingin Anda tolak (atau di shell Anda).
Jika memungkinkan, berhati-hatilah agar mesin tidak dimuat banyak dengan tugas-tugas lain yang tidak terkait dengan tolok ukur.
Atau, gunakan beberapa hypervisor seperti Xen , dan boot Linux Anda sebagai OS tamu untuk hypervisor itu. Kemudian konfigurasikan xen
untuk menggunakan hanya beberapa set core CPU yang terbatas (saya tidak tahu detail pastinya, Anda perlu mencari tahu). Pada Debian (dan terkait) distribusi, Anda mungkin menginstal paket seperti xen-linux-system-amd64
, xen-hypervisor-amd64
, xen-utils
dll (aku menggunakan Debian / Sid xen-hypervisor-4.5-amd64
, xen-linux-system-4.0.0-1-amd64
, xen-utils-4.5
dll ...).
Mungkin ada beberapa cara untuk mengkonfigurasi (mungkin pada saat kompilasi kernel, atau dengan memberikan argumen spesifik ke kernel melalui Grub loader) kernel Linux Anda untuk membatasi jumlah core yang dapat digunakan.
Tentu saja, lebih baik, ketika benchmarking beberapa program yang-misalnya di desktop Linux PC-, untuk berhati-hati untuk menghindari banyak proses di luar berjalan (gunakan ps auxw
, pstree -p
, top
untuk menemukan ini). Paling tidak, tutup dan tutup sebagian besar aplikasi interaktif (browser seperti firefox, email, editor, IDE seperti Eclipse) dan simpan hanya sejumlah kecil terminal sebagai tolok ukur. Anda bahkan dapat melakukan benchmark dalam mode batch (menggunakan batch
atau at
menjalankan benchmark) saat Anda bahkan belum login (jadi tidak memiliki sesi GUI à la Gnome atau KDE atau Xfce , dll ... berjalan).