Các Cuối cùng Way để giải quyết này vấn đề
Bởi vì tất cả các c/file cpp sẽ được biên dịch bằng cách sử dụng make
khen, và make
có một tùy chọn trong đó quy định có bao nhiêu lõi CPU shoule được sử dụng để biên dịch mã nguồn mã, chúng tôi có thể thực hiện một số thủ thuật trên make
.
sao lưu ban đầu của bạn make
lệnh:
sudo cp /usr/bin/make /usr/bin/make.bak
viết một "giả" make
lệnh, mà sẽ nối --jobs=6
vào danh sách tham số của nó và vượt qua chúng để làm cho ban lệnh make.bak
:
make.bak --jobs=6 [email protected]
Vì vậy, sau đó, thậm chí không biên dịch python với libs c, nhưng cũng có những người khác chứa libs c sẽ tăng tốc độ biên dịch bởi 6 lõi. Trên thực tế tất cả các tệp được biên dịch bằng cách sử dụng lệnh make
sẽ tăng tốc.
Và chúc may mắn.
Sử dụng: -install-option = "- việc làm = 6".
pip3 install --install-option="--jobs=6" PyXXX
Tôi có cùng nhu cầu sử dụng pip install để tăng tốc độ tiến trình biên dịch. Pkg mục tiêu của tôi là PySide. Lúc đầu, tôi sử dụng pip3 install pyside
, tôi mất gần 30 phút (AMD 1055T 6-lõi, RAM 10G), chỉ một lõi tải 100%.
Không có manh mối nào trong pip3 --help
, nhưng tôi đã tìm thấy nhiều tùy chọn như pip install -u pyXXX
, nhưng tôi không biết '-u' là gì và thông số này cũng không nằm trong số pip --help
. Tôi đã thử 'pip3 install --help' và có câu trả lời: --install-option.
Tôi đọc mã của mã PySide và tìm thấy một đầu mối khác: OPTION_JOBS = has_option('jobs')
, tôi đặt ipdb.set_trace() ở đó và cuối cùng cũng hiểu cách sử dụng đa lõi để biên dịch bằng cách sử dụng pip install.
tôi mất khoảng 6 phút.
-------------------------- cập nhật ------------------- -----------
như bình luận dưới đây, cuối cùng tôi đã sử dụng thủ đoạn như thế này: cd /usr/bin
sudo mv make make.bak
touch make
sau đó chỉnh sửa thực hiện: vim make
hay cách khác mà bạn thích và gõ này: make.bak --jobs=6 $*
Tôi không quen thuộc với bash, vì vậy tôi không chắc chắn nếu đây là mã bash correcct. Tôi đang viết bình luận này trong cửa sổ. Điều quan trọng là đổi tên thành make.bak, và sau đó tạo ra một make mới, sử dụng make mới này để gọi make.bak với thêm param --jobs = 6
có thể trùng lặp của [Parallel Pip install] (http: // stackoverflow.com/questions/11021130/parallel-pip-install) –
Tôi không nghĩ rằng đây là câu hỏi trùng lặp. Trong chủ đề "Cài đặt song song Pip", nếu tôi hiểu chính xác, tác giả muốn chạy nhiều quy trình cài đặt pip. Ngược lại, những gì tôi muốn làm là cài đặt một gói bằng cách sử dụng nhiều lõi. – Jihun
theo như tôi biết điều này không được triển khai. Lệnh build_ext phải được tùy chỉnh để đạt được điều này. – marscher