0 Làm thế nào để bọc ProcessPoolExecutor để làm cho nó cho phép các quy trình không phải daemon

câu hỏi được tạo ra tại Wed, May 8, 2019 12:00 AM

Trong trường hợp sử dụng của tôi, tôi cần chạy ProcessPoolExecutor bên trong ProcessPoolExecutor, vì vậy sẽ rất thuận tiện khi cho phép ProcessPoolExecutor có các quy trình không phải trình nền.

Tôi tự hỏi làm thế nào để thay đổi hành vi này với sửa đổi tối thiểu bằng cách gói ProcessPoolExecutor?

----------- Cập nhật -------------------

Trường hợp sử dụng của tôi là trong học máy, trong đó chúng tôi song song các thử nghiệm với các cài đặt siêu tham số khác nhau với ProcessPoolExecutor bên ngoài và chính thuật toán cũng song song với ProcessPoolExecutor bên trong.

mã psedo đồ chơi trông giống như

def algo(config):
    candidates = make_candidates(...)
    with ProcessPoolExecutor() as executor:
        executor.map(evaluation, candidates)

configs = make_configs(...)
with ProcessPoolExecutor() as executor:
    executor.map(algo, configs)

    
0
  1. bạn có thể đăng một số mã để thúc đẩy trường hợp sử dụng này không? Nghe có vẻ hơi sai lầm vào lúc này! tại sao không chỉ đánh giá mọi thứ bằng cách sử dụng trình thực thi (bên ngoài) thích hợp?
    2019-05-09 13: 11: 43Z
  2. @ SamMason Cảm ơn bạn đã bình luận. Trường hợp sử dụng mà tôi có bây giờ là trong các thử nghiệm học máy và một ví dụ về mã đồ chơi với lời giải thích được thêm vào bài đăng.
    2019-05-09 13: 18: 56Z
  3. vừa nhận ra rằng nó trông hơi giống một quả bom ngã ba đối với tôi! người thực thi bên ngoài sẽ phân bổ các giá trị của các quy trình nCPUs và sau đó mỗi người thực thi bên trong sẽ làm như vậy. Tôi nghĩ rằng tốt hơn hết là bạn nên cấu trúc lại mã của mình hoặc có thể sử dụng mức cao hơn có thể xử lý trường hợp sử dụng này tốt hơn. đặc biệt là có lẽ bạn đang sử dụng các thư viện số cũng sẽ sinh ra nhiều luồng để thực hiện các mảng lớn nhanh hơn
    2019-05-09 13: 27: 13Z
0 Câu trả lời                              0                         
nguồn đặt đây