Chúng tôi có khoảng 500GB hình ảnh trong các thư mục khác nhau mà chúng tôi cần xử lý. Mỗi hình ảnh có kích thước khoảng 4MB và chúng tôi có một tập lệnh python để xử lý từng hình ảnh một lần (nó đọc siêu dữ liệu và lưu trữ nó trong một cơ sở dữ liệu). Mỗi thư mục có thể mất 1-4 giờ để xử lý tùy thuộc vào kích thước.Cách nhanh nhất để xử lý các tệp lớn trong Python
Hiện tại chúng tôi đang xử lý bộ xử lý lõi tứ 2,2 Ghz và RAM 16 GB trên hệ điều hành GNU/Linux. Kịch bản hiện tại chỉ sử dụng một bộ xử lý. Cách tốt nhất để tận dụng các lõi và RAM khác để xử lý hình ảnh nhanh hơn là gì? Sẽ bắt đầu nhiều quá trình Python để chạy kịch bản tận dụng lợi thế của các lõi khác?
Một tùy chọn khác là sử dụng một cái gì đó như Gearman hoặc Cây đậu để trang trại công việc cho các máy khác. Tôi đã xem xét thư viện đa xử lý nhưng không chắc chắn cách tôi có thể sử dụng nó.
bản sao có thể có của [Cách sử dụng tất cả các lõi trong Windows 7?] (Http://stackoverflow.com/questions/3055696/how-to-use-all-the-cores-in-windows-7) –
Nếu bạn đã có một tập lệnh làm việc mà bạn có thể trỏ vào bất kỳ tập tin/thư mục nào bạn muốn, hãy xem xét viết một kịch bản lệnh shell để xoay vòng bao nhiêu lần tùy ý bạn cần. –
Tôi bắt đầu bằng cách nhìn vào vị trí cổ chai. Nếu bạn đang dành phần lớn thời gian của bạn thực hiện IO thì bạn sẽ không thể đi nhanh hơn nhiều. Ví dụ, nếu một quá trình duy nhất quản lý để tải dữ liệu từ đĩa ở một tốc độ nhất định, nó rất khó mà bạn sẽ có thể duy trì tốc độ đó khi nhiều quá trình nhai đĩa. –