Apa yang harus saya perhatikan untuk mempercepat program yang membutuhkan banyak daya dan inti prosesor?

4

Saya ingin membangun sebuah sistem untuk menjalankan satu program khusus secepat mungkin (saat ini dapat memakan waktu hingga 50 jam untuk menjalankan laptop saya dengan prosesor I5).

Program ini ditulis dalam VB6, mengerjakan banyak data / angka, dan hanya menggunakan satu inti. Namun, ada file batch di mana saya bisa membuka banyak contoh program yang saya suka, dan file batch kemudian menyusun informasi yang dihasilkan kembali seolah-olah itu semua hanya satu kali berjalan (pendekatan godam, saya tahu).

Jadi dua hal yang saya temukan sejauh ini yang membantu kecepatan adalah lebih banyak inti, dan kecepatan (GHz) dari prosesor. Jika prosesor menggunakan turbo untuk meningkatkan kecepatan maka mereka tampaknya membutuhkan satu atau dua inti yang tidak digunakan untuk memanfaatkannya.

Saya tidak ingin server, jadi apa yang harus saya cari (di komputer) ketika merancang / menetapkan sistem untuk melakukan ini?

Rodney
sumber
1
Pertanyaan Anda akan ditutup sebagai a rekomendasi belanja sebagaimana adanya, namun Anda SANGAT dekat untuk menjadi pertanyaan yang valid. Harap ulangi pertanyaan Anda menjadi " apa yang harus saya cari di komputer untuk melakukan ini "bukannya saat ini" Komputer apa yang harus saya lakukan ini ". Sebagai situs, kami ingin pertanyaan dan jawaban yang masih berlaku dalam 6 bulan. Jika kami memberi tahu Anda apa yang harus dibeli, info tersebut tidak berguna hanya dalam beberapa bulan karena komputer mungkin tidak bahkan dijual lagi. Jika kami memberi tahu Anda apa yang harus dicari, info itu tetap relevan.
Scott Chamberlain
5
Temukan program yang berbeda, VB6 adalah hambatan Anda. Sudah ada tes yang dilakukan, dan menggunakan .NET VB atau C # dapat memberi Anda 50% peningkatan kecepatan.
Logman
Dengan senang hati. Tapi saya hanya pengguna, sepertinya akan ditulis ulang dalam C #, tapi itu bisa beberapa tahun lagi ...
Rodney
VB6 adalah bahasa yang ditafsirkan AFAIK sehingga akan berjalan sangat lambat untuk tugas-tugas angka dibandingkan dengan C. Bisakah itu ditulis ulang atau apakah ada produk alternatif yang melakukan hal yang sama dan dapat menggunakan beberapa utas juga?
Matt H
Rodney, dalam hal ini mencari CPU yang memiliki core lebih sedikit tetapi kecepatan clock lebih tinggi. CPU Intel sangat baik dalam angka-angka.
Matt H

Jawaban:

2

"Program ini ditulis dalam VB6, mengerjakan banyak data / angka, dan hanya menggunakan satu inti" gaya Oldschool! Ada beberapa hal yang ingin Anda perhitungkan di sini. Pertama, bahwa sebagian besar ekstensi modern tidak akan banyak membantu Anda, jadi Anda mencari kecepatan ulir tunggal.

"Jadi dua hal yang saya temukan sejauh ini bahwa kecepatan bantuan lebih banyak inti, dan kecepatan (Ghz) ​​prosesor" GHZ, sayangnya bukan indikator kecepatan yang bagus akhir-akhir ini. Arsitektur yang digunakan oleh sistem modern menyimpang secara liar dan Anda mungkin akhirnya membeli sistem yang berkinerja kurang baik berdasarkan kecepatan. Walaupun saya menyadari mungkin ada alasan bagus untuk tidak menulis ulang program, menggunakan bahasa modern, fitur prosesor modern, dan pemrograman aplikasi untuk mengambil keuntungan dari pemrosesan paralel (atau mungkin bahkan GPGPU) akan secara besar-besaran tingkatkan kecepatan Anda menjalankan berbagai hal.

Saya mungkin akan mencari patokan yang melakukan kinerja berulir tunggal terhadap biaya - passmark memiliki satu dan itu akan membantu Anda membuat keputusan. Saya menggunakan pencarian google untuk menemukannya - Saya menggunakan istilah 'single thread performance ;. Saya perhatikan bahwa prosesor terbaik untuk harga semua tampaknya intel. Jangan lupa untuk menguji aplikasi dengan dan tanpa hyperthreading dihidupkan, karena banyak aplikasi tidak melakukannya dengan baik dengan HT.

Pendekatan lain yang akan saya pertimbangkan adalah susunan komputer yang lebih kecil, lebih murah yang mungkin lebih murah daripada sistem yang lebih mahal, karena tugas ini tampaknya 'sepele parallelisable'. Anda bahkan mungkin ingin mencoba menggunakan amazon EC2 untuk melepas dan melakukan perhitungan, lalu gabungkan kembali di desktop Anda sendiri. Bergantung pada waktu berjalan dari setiap instance program, Anda bahkan mungkin dapat melakukan ini dengan tingkat gratis.

Untuk pandangan yang lebih ilmiah tentang apa itu sebenarnya bottlenecking program Anda, lihatlah xperf. Saya tidak terbiasa dengan itu, jadi saya tidak bisa banyak membantu di sana, tapi ada banyak informasi bagus di luar sana , dan seharusnya membantu Anda bekerja di tempat yang Anda butuhkan untuk menempatkan lebih banyak sumber daya.

Journeyman Geek
sumber
Saya telah menambahkan penyebutan alat yang seharusnya membantu Anda berolahraga persis di mana hambatannya - yang disebut xperf atau toolkit kinerja windows. Mengajukan pertanyaan tentang penggunaannya dalam skenario khusus Anda mungkin menarik, karena saya pribadi belum menggunakannya, dan itu akan membantu Anda menemukannya persis di mana Anda bottlenecking pada titik mana pun.
Journeyman Geek
0

Anda beruntung. Karena Anda dapat memanfaatkan banyak inti, salah satu ukuran kinerja CPU yang paling populer, Tolok Ukur CPU PassMark harus melakukan pekerjaan dengan baik. Anda tinggal memilih CPU dengan yang tertinggi Peringkat CPU PassMark s.

David Schwartz
sumber