Câu hỏi Tốc độ đồng hồ so với số lõi cho mô phỏng máy tính song song [trùng lặp]


Câu hỏi này đã có câu trả lời ở đây:

Câu hỏi của tôi tương tự như một số câu hỏi "tốc độ so với lõi" đã được yêu cầu trên trang web này. Tuy nhiên, tôi quan tâm đến một số điểm rất cụ thể và kỹ thuật. Vì vậy, tôi hy vọng rằng câu hỏi của tôi sẽ đủ điều kiện cho một "câu trả lời" thay vì chỉ dựa trên ý kiến.

Tại nơi làm việc của tôi, chúng tôi thường xuyên tiếp cận các vấn đề thống kê nhất định bằng cách sử dụng mô phỏng máy tính. Phần mềm mà chúng tôi sử dụng chủ yếu dành cho lõi đơn, nhưng chúng tôi chạy song song với nhiều phiên bản của các chương trình này. Các mô phỏng được tính toán chuyên sâu và một lần lặp có thể mất đến một giờ để hoàn thành.

Để nâng cao tốc độ của những tính toán này, tôi đã được yêu cầu đề xuất một vài mô hình phù hợp nhất. Tuy nhiên, tôi không chắc liệu, vào thời điểm này, các tính toán sẽ được hưởng lợi từ tốc độ đồng hồ cao hơn nhiều so với các quy trình song song hơn.

Các máy tính mà chúng tôi hiện đang sử dụng là các giải pháp quy mô máy chủ có chứa nhiều CPU ở tốc độ tương đối cao (16 lõi vật lý, 2,9GHz mỗi máy và không có GPU). Vì vậy, quyết định đầu bếp xuống hai lựa chọn:

  • đầu tư vào các máy tương tự có tốc độ đồng hồ cao hơn một chút (ví dụ: 3.2GHz) và số lượng lõi tương tự (nói 16), hoặc cách khác ...
  • giảm tốc độ xung nhịp (ví dụ: 2.6GHz) và cho số lượng lõi lớn hơn (nói 20 hoặc 24).

Tôi không chắc chắn nếu tăng tốc độ đồng hồ sẽ trả hết ngay cả trong các ứng dụng chuyên sâu tính toán bởi vì tôi giả định rằng hiệu suất không tăng tuyến tính với tốc độ đồng hồ. Nói đúng ra, tôi chỉ có thể tiếp cận vấn đề như thế này:

  • 3,2GHz * 16 lõi = 51,2GHz, hoặc cách khác ...
  • 2,5GHz * 24 lõi = 60,0 GHz

Tuy nhiên, tôi khá chắc chắn tính toán này là thiếu sót trong một số cách. Nhưng theo cách nào chính xác? Tiền không thực sự là một vấn đề trong trường hợp paarticular này và việc tính toán bằng cách sử dụng GPU phải được loại trừ.

Các máy sẽ chạy Windows Server 2012 R2 và sẽ được sử dụng riêng cho loại tính toán này. Tất cả các chương trình liên quan được tối ưu hóa cho 64bit, nhưng đôi khi các chương trình phần mềm 32 bit cũng được tham gia. Bộ nhớ và HDD không phải là một yếu tố rất lớn để xem xét.

Chúc mừng!


0
2018-02-04 14:56


gốc


Như trong dupe: nó phụ thuộc vào các quy trình và cách chúng sử dụng hệ thống. Vì vậy, (IMO) không có câu trả lời duy nhất để cung cấp cho bạn, hoặc một phép tính đơn giản mà bạn có thể làm để xác định cái nào tốt hơn. Đo điểm chuẩn và cấu hình mã của bạn trên nhiều nền tảng / cấu hình và sau đó mua bất kỳ thiết lập nào chạy tốt nhất. Nếu bạn không có thời gian để thực hiện hồ sơ, sau đó nhận được một thiết lập với hầu hết các lõi, chạy một tốc độ nhanh nhất mà bạn có thể mua được. - Ƭᴇcʜιᴇ007
Nếu phần mềm chỉ sử dụng một lõi đơn thì bạn muốn lõi đơn đó càng nhanh càng tốt để trường hợp cụ thể của phần mềm hoàn thành nhiệm vụ của mình càng nhanh càng tốt. Tại sao bạn nhân số lõi và tần số đồng hồ. Nó không hoạt động như thế.  Bạn thực sự là chính xác. Việc tăng hiệu suất sẽ không được tuyến tính nhưng sau đó bạn có thể xác định chai nhỏ tiếp theo. Cá nhân tôi sẽ chỉ sử dụng phần mềm tính toán KHÔNG được đơn luồng. - Ramhound
@Ramhound: Tôi nhận ra nó không hoạt động như thế, nhưng tôi quan tâm đến làm sao nó hoạt động, đó là, những yếu tố xen kẽ nào tôi phải tính đến. Thật vậy, các chương trình là lõi đơn, nhưng chúng tôi vẫn chạy chúng song song. Điều này được thực hiện bằng cách sử dụng một "chính" quá trình mà bắt đầu nhiều trường hợp "công nhân" của cùng một chương trình. Khi tính toán là CPU chuyên sâu như trên, hiệu suất thực sự nhân với số lõi trên một máy nhất định. Tuy nhiên, điều này không cho phép một kết luận về những gì mang lại lợi ích lớn hơn trong kịch bản được mô tả ở trên: tốc độ đồng hồ hoặc lõi vật lý. - SimonG
Không có đủ thông tin để kết luận điều gì là tốt nhất. Nếu bạn có 5 nhiệm vụ, và mỗi nhiệm vụ mất 1 giờ để hoàn thành trên một bộ xử lý lõi duy nhất chạy ở 3 Ghz thì bạn có thể hoàn thành 5 nhiệm vụ trong một giờ nếu bộ xử lý đó có 5 lõi chạy ở 3 Ghz. Nếu bạn muốn có hiệu suất tốt nhất thì hãy tối đa hóa số lượng lõi và tần số mà hiệu suất S be là tuyến tính. - Ramhound
@SimonG, Tất cả các câu trả lời trong chủ đề này (và các chủ đề liên kết) phần lớn là không chính xác. Bạn cần mua máy tính có bộ nhớ cache lớn nhất trên chip, xem superuser.com/questions/543702/… - Ale..chenski


Các câu trả lời:


Các tính toán không chính xác. Họ là từ quan điểm toán học của xem, nhưng trong máy tính bạn thực sự cần phải nhân 0,9-0,75 để có được "quyền lực" thực sự Và lõi / bộ xử lý có nghĩa là số thấp hơn. Điều này xảy ra vì sức mạnh máy tính bạn cần phải song song các nhiệm vụ và chúng để xây dựng kết quả cuối cùng từ các luồng khác nhau.


1
2018-02-04 15:10



Nhận xét này đã giúp ích cho mục đích của tôi. Tuy nhiên, tôi nghĩ trong kịch bản nhất định, nỗ lực cần để song song quá trình này là khá nhỏ vì các tính toán mất khá nhiều thời gian để việc giao tiếp giữa quá trình chính và công nhân diễn ra không quá thường xuyên. - SimonG