2015-07-31 20 views
6

Tôi đang sử dụng DEAP pacakge của Python và tôi muốn mã đa lõi của mình và tôi đã sử dụng hướng dẫn tại http://deap.gel.ulaval.ca/doc/dev/tutorials/distribution.html để thực hiện thành công việc đó bằng cách xử lý đa.Thuật toán di truyền DEAP python tốc độ đa lõi

Câu hỏi của tôi là như sau: sử dụng 8 lõi, tôi nhận được bao nhiêu tốc độ? Lý do tôi hỏi là vì tôi muốn quyết định có bao nhiêu cá nhân và thế hệ tôi có thể chạy trong cùng một khoảng thời gian như phiên bản đơn lõi. Mã của tôi được sử dụng để chạy ~ 200s và với 8 lõi, bây giờ mất ~ 0,5 giây (đây là tốc độ 400X). Tôi có thể giả định rằng bất cứ điều gì sẽ được tăng tốc bởi 400X? Tôi biết nó phức tạp, nhưng sự giúp đỡ của bạn sẽ rất được đánh giá cao.

Nói chung, nếu có ai có thể trợ giúp, tôi muốn hiểu cách đa số thay đổi luồng tính toán. Liệu nó chỉ là bản đồ đánh giá của từng cá nhân trên các lõi khác nhau cho mỗi thế hệ? Hay nó chạy thế hệ song song? Nếu bạn biết bất kỳ tài liệu nào tôi có thể đọc về điều này, vui lòng cho tôi biết.

Tôi không cung cấp ví dụ về mã vì có vẻ như không cần thiết vì đây là câu hỏi cấp cao.

Trả lời

3

Liệu bản đồ chỉ đánh giá từng cá nhân trên các lõi khác nhau cho mỗi thế hệ hay chạy song song với thế hệ?

Ví dụ ánh xạ evaluate hoạt động như vậy ...

fitnesses = toolbox.map(toolbox.evaluate, invalid_ind) 

Quá trình chạy duy nhất lượt truy cập bản đồ: tất cả các invalid_ind 's được marshaled vào một hàng đợi đơn và, làm nòng cốt đi kèm sẵn, cá nhân tiếp theo trong hàng đợi được gán cho lõi đó để chạy thường lệ evaluate. Khi hàng đợi trống, tất cả các kết quả được lắp ráp vào một danh sách và được gán lại cho fitnesses. Từ đó quá trình tiếp tục trên đó là đơn độc.

Vì vậy:

  • "Yes" nó lập bản đồ đánh giá của mỗi cá nhân trên các lõi khác nhau và,
  • "Không" nó không chạy hệ song song

Ít nhất đó là những gì tôi phỏng đoán từ khi I asked this question. Tùy thuộc vào ứng dụng của bạn tất nhiên, trong kinh nghiệm của tôi với DEAP và cProfile, hai người tiêu dùng hàng đầu của thời gian CPU đã đánh giá cá nhân và sao chép.

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