2008-10-10 27 views
5

dễ cách nào để làm cho rõ ràng một ứng dụng đã sử dụng luồng một môi trường đa lõi? (nếu có).Explicit đa lõi C# ứng dụng

Vấn đề đầu tiên sẽ là làm thế nào để xác định xem môi trường thời gian chạy của tôi hỗ trợ các ứng dụng đa lõi?

Nếu tôi sau đó xác định rằng tôi có thể sử dụng chức năng đa lõi, tôi có thể gán một cách rõ ràng chủ đề để chạy trên các lõi khác nhau? Nếu vậy Có phải giao tiếp luồng được xử lý bởi hệ điều hành/phần cứng hoặc tôi có bị bẩn tay không?

Trả lời

11

Nếu ứng dụng của bạn đã được tạo luồng đúng cách, bạn không phải làm gì cả. Thực thi bối cảnh chủ đề và xử lý được thực hiện cho bạn.

Bây giờ khi nói đến luồng, được ứng dụng của bạn ren trong một cách để sử dụng các lõi? bạn có nhiệm vụ xử lý chuyên sâu được chia thành các chuỗi riêng biệt hay không. Nếu không, sau đó bạn sẽ cần phải thực hiện thay đổi để phân chia nhiệm vụ xử lý của bạn thành nhiều chủ đề hơn. Bạn có thể sử dụng Environment.ProcessorCount để lấy số lượng lõi và tạo ra bao nhiêu luồng thích hợp khi chạy cho các nhiệm vụ của bạn.

Tính đến bây giờ, không có thực sự bất kỳ cách nào để làm cho một ứng dụng không đúng luồng (thread duy nhất) vào một ứng dụng ren tận dụng tất cả các bộ vi xử lý/lõi, trừ khi bạn tìm đến các công nghệ tương lai, chẳng hạn như plinqParallel FX

0

Nếu không đi vào chi tiết cụ thể (tôi không chắc chắn bao nhiêu thông tin là công cộng nào), phiên bản tiếp theo của .NET framework sẽ rất hữu ích hơn với việc này. Bạn có thể không muốn hoặc cần phải suy nghĩ về quản lý các chủ đề bằng tay. Tôi chắc rằng nhiều thông tin hơn sẽ được công khai về vấn đề này sau PDC (cuối tháng 10).

3

Hi có 2 extentions mà tôi biết về

Parallel C# Homepage

Check out Somasegars MSDN blog on MS June CTP for parallel 3.5 extenstions

MSDN

Thư viện này được tạo thành từ các thành phần sau:

  • Các tác vụ song song Library (TPL), cung cấp hỗ trợ cho dữ liệu bắt buộc và nhiệm vụ xử lý song song.
  • LINQ song song (PLINQ), cung cấp hỗ trợ cho dữ liệu song song khai báo.
  • Cấu trúc dữ liệu phối hợp (CDS), cung cấp hỗ trợ cho phối hợp công việc và quản lý trạng thái được chia sẻ.
1

Hiện tại, bạn có thể thiết lập các bộ vi xử lý sẵn sàng cho một trao quá trình sử dụng Process.ProcessorAffinity, nhưng gán chủ đề cụ thể để xử lý cụ thể được xử lý dưới mui xe ngầm. Đây thực sự là một điều tốt hầu hết thời gian, như là một thời gian chạy thông minh sử dụng thời gian thực hiệu suất và thông tin cân bằng tải thường có thể làm một công việc tốt hơn bạn có thể tĩnh, ít nhất là cho đa lõi vài lõi bối cảnh chủ đạo hoạt động trong.

1

Đó là vấn đề. Cách tạo ứng dụng luồng, cách chuyển đổi mã hiện có của bạn. Tôi muốn khai thác đa lõi trong C#. Tuy nhiên, ParallelFX vẫn là phiên bản beta. Tôi sẽ không phát triển bằng cách sử dụng bản beta. Và, tôi không muốn thay đổi tất cả mã một lần nữa (tôi đã dịch ứng dụng của mình từ VB 6). Hôm nay, tôi nhận được một bản tin từ Nhà xuất bản Packt thông báo một cuốn sách mới về lập trình song song với C#. Lập trình luồng C# 2008 và 2005. Tôi nghĩ rằng nó tập trung vào những thứ chúng tôi đang viết blog ở khắp mọi nơi. Làm thế nào để suy nghĩ và phát triển một ứng dụng luồng mà không cần chờ đợi một ngôn ngữ kỳ diệu mới. Thật tuyệt khi thấy những cuốn sách hoàn toàn dành riêng cho chủ đề này, bởi vì chúng tôi có đầy đủ các blog về điều đó. Liên kết là http://www.packtpub.com/beginners-guide-for-C-sharp-2008-and-2005-threaded-programming/book Tôi nghĩ rằng nó xứng đáng là một apportunity. Tôi sẽ cho bạn biết phản hồi của tôi khi tôi mua nó.

Các vấn đề liên quan