Eksekusi multi-threaded skrip perl / python sederhana

0

Beberapa tahun yang lalu seorang teman membuat 'tolok ukur' (Catatan: Bukan tolok ukur) yang dengannya kami mengukur satu aspek mentah daya komputasi. Yaitu seberapa cepat (atau memang lambat) komputer bisa menghitung ke jumlah yang besar. Kami menyebutnya "Tolok Ukur Acak Hugo".

http://www.hants.lug.org.uk/wiki/HugoRandomBenchmark

Ini terdiri dari garis sederhana berikut yang dapat disisipkan ke dalam shell untuk mengukur kekuatan komputasi.

 time perl -e 'for($i=0;$i<1e8;$i++) { }'

Ini sangat konyol, sebagian besar tidak ada gunanya tetapi populer di LUG kami selama beberapa waktu. Satu hal yang tidak pernah kami temukan adalah cara sederhana untuk melakukan hal yang sama untuk menguji prosesor multi-core / multi-thread. Bagaimana ini bisa dicapai?

Saya ingin skrip yang mudah disalin / ditempel dengan mudah yang tidak bergantung pada pemasangan banyak dependensi tambahan. Kita cenderung menjalankan ini pada sistem Linux / Unix sehingga dapat mengasumsikan beberapa versi Perl (atau Python) mungkin ada, tidak perlu modul perl / pustaka tambahan.

Apakah ada cara sederhana untuk mengukir pekerjaan ini hingga jumlah inti sembarang dan masih mendapatkan total runtime yang andal di akhir?

popey
sumber

Jawaban:

0
time (perl -e 'for($i=0;$i<1e8;$i++) { }' & perl -e 'for($i=0;$i<1e8;$i++) { }' & wait)

Tambahkan lebih banyak perintah perl untuk lebih dari 2 CPU.

psusi
sumber