Hướng dẫn python run function n times in parallel - python chạy hàm n lần song song

Tôi có một hàm Python trả về mảng numpy đa chiều làm đầu ra. Đó là một mô phỏng Monte Carlo với các số ngẫu nhiên và tôi muốn chạy chức năng này n lần với cùng một đầu vào, thu thập dữ liệu và làm trung bình. Có một cách đơn giản để sử dụng multiprocessing để đạt được điều này?

Hỏi ngày 16 tháng 10 năm 2014 lúc 8:08Oct 16, 2014 at 8:08

Hướng dẫn python run function n times in parallel - python chạy hàm n lần song song

Ví dụ: calc trung bình với hàm vuông đơn giản sử dụng 4 quy trình:

from multiprocessing import Pool

def f(x):
    return x*x

if __name__ == '__main__':
    pool = Pool(processes=4)
    n = 10000000
    inputs = xrange(n)
    # calc f output using 4 processes
    out_list = pool.map(f, inputs)
    # average  
    print sum(out_list) / float(n)

Đã trả lời ngày 16 tháng 10 năm 2014 lúc 8:37Oct 16, 2014 at 8:37

Hướng dẫn python run function n times in parallel - python chạy hàm n lần song song

ndpundpundpu

21.6K4 Huy hiệu vàng52 Huy hiệu bạc68 Huy hiệu Đồng4 gold badges52 silver badges68 bronze badges

    def0import4 def6import4def8multiprocessing4

    multiprocessing01import4 multiprocessing03time6__12
    multiprocessing15import4 multiprocessing17multiprocessing18multiprocessing19
Ví dụ 3:
multiprocessing34 multiprocessing35import multiprocessing37
def multiprocessing39multiprocessing40multiprocessing4
def multiprocessing58
    multiprocessing60import4 multiprocessing62time6__12
    def0import4 multiprocessing78import4multiprocessing80multiprocessing81
Làm thế nào để bạn chạy một hàm song song trong Python?
Một cách phổ biến để chạy các hàm song song với Python là sử dụng mô -đun đa xử lý mạnh mẽ, nó có nhiều tùy chọn để cấu hình và rất nhiều thứ để điều chỉnh.
Python có thể chạy mã song song không?
Đa xử lý trong Python cho phép máy tính sử dụng nhiều lõi của CPU để chạy các tác vụ/quy trình song song. Đa xử lý cho phép máy tính sử dụng nhiều lõi của CPU để chạy các tác vụ/quy trình song song.
Làm thế nào để bạn gọi một chức năng bằng cách sử dụng đa xử lý trong Python?
Để chạy một chức năng trong một quy trình khác:.
Tạo một thể hiện của đa xử lý. Lớp học quá trình ..
Chỉ định tên của chức năng thông qua đối số của mục tiêu trên mạng ..
Gọi hàm start () ..
Tệp này chứa văn bản unicode hai chiều có thể được giải thích hoặc biên dịch khác với những gì xuất hiện dưới đây. Để xem xét, hãy mở tệp trong một trình soạn thảo cho thấy các ký tự Unicode ẩn. Tìm hiểu thêm về các ký tự unicode hai chiều
Từ quá trình nhập bộ xử lý đa xử lý
all_processes = []
Đối với func trong các nhiệm vụ:
P = Process (Target = Func)
all_processes.append (p)
P.start ()
Đối với p trong all_processes:
p.join ()
In "Tất cả các chủ đề kết thúc."

Xem thảo luận

Cải thiện bài viết

Lưu bài viết

  • Đọc
  • Bàn luận
  • Xem thảo luận

    Cải thiện bài viết

    Lưu bài viết

    Đọc

    Bàn luận

    Approach:

    • Trong bài viết này, chúng tôi sẽ học cách chạy cùng một chức năng song song với các tham số khác nhau. Chúng ta có thể chạy cùng một hàm song song với các tham số khác nhau bằng cách sử dụng xử lý song song.
    • Số lượng nhiệm vụ được thực hiện bởi chương trình có thể được tăng lên bằng cách xử lý song song, làm giảm tổng thời gian xử lý. Những hỗ trợ này trong việc giải quyết các vấn đề quy mô lớn. Sử dụng mô -đun đa xử lý tiêu chuẩn, bằng cách tạo các quy trình con, chúng ta có thể song song hóa các tác vụ đơn giản một cách hiệu quả. Mô-đun này cung cấp một giao diện dễ sử dụng và bao gồm một tập hợp các tiện ích xử lý nhiệm vụ và đồng bộ hóa nhiệm vụ.
    • Chúng tôi & nbsp; có thể xây dựng một quá trình chạy độc lập bằng cách phân lớp quy trình đa xử lý. Chúng ta có thể khởi tạo tài nguyên bằng cách mở rộng phương thức __init_ và chúng ta có thể viết mã cho quy trình con bằng cách thực hiện phương thức process.run (). Chúng tôi thấy cách xây dựng một quy trình trong mã bên dưới, in ID được chỉ định.

    Chúng ta cần khởi tạo đối tượng quy trình của mình và gọi phương thức Process.start () để sinh ra quy trình. Ở đây, Process.start () sẽ tạo một quy trình mới và gọi một phương thức gọi là Process.run ().

    Mã sau P.start () được thực thi ngay trước khi Pcess P hoàn thành nhiệm vụ. Bạn có thể sử dụng Process.Join để chờ hoàn thành nhiệm vụ ().

    Python3

    Hãy để hiểu điều này với một số ví dụ.

    Ví dụ 1: & nbsp;

    import multiprocessing

    import time

    class Process(multiprocessing.Process):

    multiprocessing5multiprocessing6multiprocessing7multiprocessing1

    multiprocessing5multiprocessing2multiprocessing3multiprocessing4

    multiprocessing5multiprocessing6multiprocessing7multiprocessing8import2import0multiprocessing7multiprocessing1import2multiprocessing3import5

    multiprocessing5multiprocessing1import22213 import4 multiprocessing3

        def import8multiprocessing1multiprocessing4

        time9

        class1

    import6 import7import4import4 time0time1

        time9

        time3import4 time5time6multiprocessing4

    Output:

    Hướng dẫn python run function n times in parallel - python chạy hàm n lần song song

        time3import4 time5multiprocessing3multiprocessing4

        class1

    Chúng ta cũng có thể chạy cùng một hàm song song với các tham số khác nhau bằng cách sử dụng lớp nhóm. Để ánh xạ song song, trước tiên chúng ta phải khởi tạo đối tượng đa xử lý.pool (). Đối số đầu tiên là số lượng công nhân; Nếu không được đưa ra, con số đó sẽ bằng số lượng phần tử trong hệ thống.

    Python3

    Hãy để hiểu điều này với một số ví dụ.

    Ví dụ 1: & nbsp;

    import multiprocessing

    import time

    multiprocessing5multiprocessing1import22213 import4 multiprocessing3

        def import8multiprocessing1multiprocessing4

    import6 import7import4import4 time0time1

        time3import4 time5time6multiprocessing4

        time3import4 time5multiprocessing3multiprocessing4

        multiprocessing6multiprocessing7multiprocessing23import2import0multiprocessing26

        multiprocessing6multiprocessing7multiprocessing30import2import0multiprocessing33

    Output:

    Hướng dẫn python run function n times in parallel - python chạy hàm n lần song song

        class1

    Python3

    Chúng ta cũng có thể chạy cùng một hàm song song với các tham số khác nhau bằng cách sử dụng lớp nhóm. Để ánh xạ song song, trước tiên chúng ta phải khởi tạo đối tượng đa xử lý.pool (). Đối số đầu tiên là số lượng công nhân; Nếu không được đưa ra, con số đó sẽ bằng số lượng phần tử trong hệ thống.

    Ví dụ 2:

        multiprocessing6multiprocessing7multiprocessing45import2import0multiprocessing7multiprocessing40multiprocessing03time6multiprocessing52multiprocessing40multiprocessing03multiprocessing3multiprocessing56

    Hãy xem bằng một ví dụ. Trong ví dụ này, chúng ta sẽ thấy cách truyền một hàm tính toán bình phương của một số. Sử dụng pool.map (), chúng tôi có thể ánh xạ hàm vào danh sách và chuyển chức năng và danh sách các đầu vào làm đối số, như sau:

    def Process(multiprocessing.Process):7

        Process(multiprocessing.Process):9     0    1     2

        multiprocessing17multiprocessing18multiprocessing85

    multiprocessing5multiprocessing1import22213 import4 multiprocessing3

        multiprocessing93

    Output:

    Hướng dẫn python run function n times in parallel - python chạy hàm n lần song song


    Làm thế nào để bạn chạy một hàm song song trong Python?

    Một cách phổ biến để chạy các hàm song song với Python là sử dụng mô -đun đa xử lý mạnh mẽ, nó có nhiều tùy chọn để cấu hình và rất nhiều thứ để điều chỉnh.use the multiprocessing module which is powerful, it has many options to configure and a lot of things to tweak.

    Python có thể chạy mã song song không?

    Đa xử lý trong Python cho phép máy tính sử dụng nhiều lõi của CPU để chạy các tác vụ/quy trình song song.Đa xử lý cho phép máy tính sử dụng nhiều lõi của CPU để chạy các tác vụ/quy trình song song.. Multiprocessing enables the computer to utilize multiple cores of a CPU to run tasks/processes in parallel.

    Làm thế nào để bạn gọi một chức năng bằng cách sử dụng đa xử lý trong Python?

    Để chạy một chức năng trong một quy trình khác:..
    Tạo một thể hiện của đa xử lý.Lớp học quá trình ..
    Chỉ định tên của chức năng thông qua đối số của mục tiêu trên mạng ..
    Gọi hàm start () ..