Hướng dẫn large matrix multiplication python - Python nhân ma trận lớn

-Được chỉnh sửa để đáp ứng dưới đây bình luận / người xuống-Downvoter-EDITED TO SATISFY BELOW COMMENT / DOWNVOTER --

Show

Bạn đang hỏi làm thế nào để nhân ma trận nhanh chóng và dễ dàng.

Giải pháp 1: Đây là một vấn đề được giải quyết: Sử dụng Numpy. Tất cả các hoạt động này đều dễ dàng ở Numpy, và vì chúng được thực hiện trong C, rất nhanh.: This is a solved problem: use numpy. All these operations are easy in numpy, and since they are implemented in C, are rather blazingly fast.

  • http://www.numpy.org/
  • http://www.scipy.org

cũng thấy:

  • Ma trận rất lớn sử dụng python và numpy
  • http://docs.scipy.org/doc/scipy/reference/sparse.html

Scipy và Numpy có ma trận thưa thớt và phép nhân ma trận. Nó không sử dụng nhiều bộ nhớ vì (ít nhất là nếu tôi viết nó trong C), nó có thể sử dụng các danh sách được liên kết và do đó sẽ chỉ sử dụng bộ nhớ cần thiết cho tổng số dữ liệu, cộng với một số chi phí. Và, nó gần như chắc chắn sẽ rất nhanh so với giải pháp Python thuần túy.sparse matrices and matrix multiplication. It doesn't use much memory since (at least if I wrote it in C) it probably uses linked lists, and thus will only use the memory required for the sum of the datapoints, plus some overhead. And, it will almost certainly be blazingly fast compared to pure python solution.

Giải pháp 2

Một câu trả lời khác ở đây cho thấy việc lưu trữ các giá trị là bộ dữ liệu của (x, y), giả định giá trị là sai trừ khi nó tồn tại, thì đó là sự thật. Thay thế cho điều này là một ma trận số với các bộ dữ liệu (x, y, value).

Bất kể: Nhân những thứ này sẽ rất khó khăn thời gian: Tìm phần tử một, quyết định phần tử mảng nào khác để nhân, sau đó tìm kiếm toàn bộ tập dữ liệu cho bộ cụ thể đó và nếu nó tồn tại, nhân và chèn kết quả vào ma trận kết quả.Nasty time-wise: find element one, decide which other array element to multiply by, then search the entire dataset for that specific tuple, and if it exists, multiply and insert the result into the result matrix.

Giải pháp 3 (ưa thích so với Giải pháp 2, IMHO) ( PREFERRED vs. Solution 2, IMHO )

Tôi thích điều này vì nó đơn giản / nhanh hơn.

Đại diện cho ma trận thưa thớt của bạn với một bộ từ điển. Ma trận một là một dict với phần tử tại (x, y) và giá trị V là (với x1, y1, x2, y2, v.v.):

matrixDictOne = { 'x1:y1' : v1, 'x2:y2': v2, ... }
matrixDictTwo = { 'x1:y1' : v1, 'x2:y2': v2, ... }

Vì một tra cứu Python Dict là O (1) (không sao, không thực sự, có lẽ gần với log (n)), nó nhanh. Điều này không yêu cầu tìm kiếm toàn bộ dữ liệu của ma trận thứ hai cho sự hiện diện của phần tử trước khi nhân. Vì vậy, nó nhanh. Thật dễ dàng để viết nhân và dễ hiểu các đại diện.

Giải pháp 4 (nếu bạn là người tham gia hình phạt) (if you are a glutton for punishment)

Mã giải pháp này bằng cách sử dụng tệp ánh xạ bộ nhớ có kích thước cần thiết. Khởi tạo một tệp có giá trị null của kích thước yêu cầu. Tính toán độ lệch và ghi vào các vị trí thích hợp trong tệp khi bạn thực hiện phép nhân. Linux có một VMM sẽ vào và ra cho bạn với rất ít chi phí hoặc làm việc từ phía bạn. Đây là một giải pháp cho các ma trận rất, rất lớn không thưa thớt và do đó sẽ không phù hợp với bộ nhớ.NOT SPARSE and thus won't fit in memory.

Lưu ý Điều này giải quyết khiếu nại của người khiếu nại dưới đây rằng nó sẽ không phù hợp với bộ nhớ. Tuy nhiên, OP đã nói thưa thớt, ngụ ý rất ít các dữ liệu thực tế được trải ra trong các mảng khổng lồ và Numpy / Scipy xử lý điều này một cách tự nhiên và do đó một cách độc đáo (rất nhiều người tại Fermilab sử dụng Numpy / Scipy thường xuyên, tôi tin tưởng mã ma trận thưa được kiểm tra tốt).solves the complaint of the below complainer that it won't fit in memory. However, the OP did say sparse, which implies very few actual datapoints spread out in giant arrays, and Numpy / SciPy handle this natively and thus nicely (lots of people at Fermilab use Numpy / SciPy regularly, I'm confident the sparse matrix code is well tested).

Bạn cũng sẽ cần phải chạy hướng dẫn cài đặt một dòng của gói git clone https://github.com/IntelPython/ibench.git cd ibench python setup.py install9 trong môi trường Conda Python hoặc cài đặt:

Bạn cũng sẽ cần chạy hướng dẫn cài đặt một dòng của gói

git clone https://github.com/IntelPython/ibench.git
cd ibench
python setup.py install
9 trong môi trường Conda Python hoặc cài đặt:

Sau đó, nhị phân export NUM_OF_THREADS=$(grep 'model name' /proc/cpuinfo | wc -l) export OMP_NUM_THREADS=$(( $NUM_OF_THREADS / 4 )) export MKL_NUM_THREADS=$(( $NUM_OF_THREADS / 4 ))1 trong môi trường Conda sẽ phân bổ bộ nhớ cho các đối tượng sử dụng các trang khổng lồ.

Thông tin sản phẩm và hiệu suất

  • Chọn vùng của bạn Core i9
  • Đăng nhập để truy cập nội dung bị hạn chế 123456
  • Sử dụng tìm kiếm Intel.com Alder Lake
  • Bạn có thể dễ dàng tìm kiếm toàn bộ trang web Intel.com theo nhiều cách. “Ice Lake”, Ice AND Lake, Ice OR Lake, Ice*

Tên thương hiệu: Core i9

Số tài liệu: 123456

  • Tên mã: Hồ Alder
  • Các nhà khai thác đặc biệt: Hồ băng, băng và hồ, băng hoặc hồ, băng*
  • đường dẫn nhanh

Bạn cũng có thể thử các liên kết nhanh dưới đây để xem kết quả cho hầu hết các tìm kiếm phổ biến.

Bạn cũng sẽ cần chạy hướng dẫn cài đặt một dòng của gói

git clone https://github.com/IntelPython/ibench.git
cd ibench
python setup.py install
9 trong môi trường Conda Python hoặc cài đặt:

Sau đó, nhị phân export NUM_OF_THREADS=$(grep 'model name' /proc/cpuinfo | wc -l) export OMP_NUM_THREADS=$(( $NUM_OF_THREADS / 4 )) export MKL_NUM_THREADS=$(( $NUM_OF_THREADS / 4 ))1 trong môi trường Conda sẽ phân bổ bộ nhớ cho các đối tượng sử dụng các trang khổng lồ.

Thông tin sản phẩm và hiệu suất

Chọn vùng của bạn

Đăng nhập để truy cập nội dung bị hạn chế

Bạn cũng sẽ cần phải chạy hướng dẫn cài đặt một dòng của gói

git clone https://github.com/IntelPython/ibench.git
cd ibench
python setup.py install
9 trong môi trường Conda Python hoặc cài đặt:
Please consider upgrading to the latest version of your browser by clicking one of the following links.

  • Cuộc đi săn
  • Trình duyệt Chrome
  • Bờ rìa
  • Firefox

Các hoạt động ma trận lớn với Scipy* và Numpy*: Mẹo và Thực tiễn tốt nhất

Xuất bản: 12/07/2017 & NBSP; & NBSP;12/07/2017  

Cập nhật lần cuối: 12/07/201712/07/2017

Giới thiệu

Các hoạt động ma trận lớn là nền tảng của nhiều ứng dụng học tập và máy số quan trọng. Trong bài viết này, chúng tôi cung cấp một số khuyến nghị cho việc sử dụng các hoạt động trong SCIPY hoặc NUMPY cho các ma trận lớn với hơn 5.000 yếu tố trong mỗi chiều.

Lời khuyên chung cho việc thiết lập Python*

Sử dụng phiên bản phân phối Intel® mới nhất cho Python* (phiên bản 2018.0.0 tại thời điểm viết bài này) và tốt nhất là Python (phiên bản 3.6) để giải quyết bộ nhớ và hiệu suất thời gian tốt hơn. Điều này có nghĩa là tải xuống tập lệnh cài đặt miniconda* (nghĩa là

INSTALLATION_DIR=$HOME/miniconda3
bash $<DOWNLOAD_PATH>/Miniconda3-latest-Linux-x86_64.sh -b -p $INSTALLATION_DIR -f 
CONDA=${INSTALLATION_DIR}/bin/conda
ACTIVATE=${INSTALLATION_DIR}/bin/activate
8) với Python (phiên bản 3.6). Sau khi tải xuống tập lệnh, các dòng sau là một số lệnh bash ví dụ mà bạn có thể sử dụng để thực thi tập lệnh để cài đặt Conda*, Trình quản lý gói Python mà chúng tôi sẽ sử dụng trong suốt hướng dẫn này:

INSTALLATION_DIR=$HOME/miniconda3
bash $<DOWNLOAD_PATH>/Miniconda3-latest-Linux-x86_64.sh -b -p $INSTALLATION_DIR -f 
CONDA=${INSTALLATION_DIR}/bin/conda
ACTIVATE=${INSTALLATION_DIR}/bin/activate

Để cài đặt các gói Python từ Intel, bạn có thể tạo môi trường Conda có tên IDP như sau:

$CONDA create -y -c intel -n idp intelpython3_core python=3 

Để kích hoạt môi trường Conda để sử dụng, hãy chạy

source $ACTIVATE idp

Sau đó, bạn sẽ có thể sử dụng các gói đã cài đặt từ phân phối Intel cho Python.

Mẹo sử dụng các hoạt động ma trận

Những khuyến nghị này có thể giúp bạn có được hiệu suất tính toán nhanh hơn cho các hoạt động ma trận lớn trên các bộ xử lý Intel® tương thích. Từ điểm chuẩn của chúng tôi, chúng tôi thấy các tốc độ tuyệt vời của các hoạt động ma trận lớn này khi được sử dụng song song trên bộ xử lý Intel thuộc lớp máy chủ, chẳng hạn như bộ xử lý Intel® Xeon® và bộ xử lý Intel® Xeon Phi ™. Các tốc độ này là kết quả của việc tính toán song song ở lớp đa luồng của các thư viện

INSTALLATION_DIR=$HOME/miniconda3
bash $<DOWNLOAD_PATH>/Miniconda3-latest-Linux-x86_64.sh -b -p $INSTALLATION_DIR -f 
CONDA=${INSTALLATION_DIR}/bin/conda
ACTIVATE=${INSTALLATION_DIR}/bin/activate
9 và
$CONDA create -y -c intel -n idp intelpython3_core python=3 
0.

Chúng tôi dựa trên năm mẹo được mô tả dưới đây về hiệu suất được quan sát cho các điểm chuẩn hoạt động ma trận, được điều khiển phiên bản. Sau khi kích hoạt môi trường Conda cho phân phối Intel cho Python, bạn có thể cài đặt các điểm chuẩn của chúng tôi theo các bước này cho dòng lệnh BASH:

git clone https://github.com/IntelPython/ibench.git
cd ibench
python setup.py install

Ví dụ, tập lệnh công việc SLURM để chạy điểm chuẩn trên bộ xử lý Intel Xeon PHI (trước đây là bộ xử lý Hiệp sĩ có tên mã) có thể được tìm thấy tại liên kết sau, trong khi đó có thể tìm thấy tập lệnh công việc SLURM cho bộ xử lý Intel Xeon tại liên kết sau đây .

Mẹo 1: Điều chỉnh các cài đặt biến môi trường có liên quan

Để sử dụng tốt nhất các khả năng đa luồng của bộ xử lý Intel lớp máy chủ, chúng tôi khuyên bạn nên điều chỉnh các cài đặt phân bổ sợi và bộ nhớ phù hợp. Các yếu tố có thể ảnh hưởng đến hiệu suất của các hoạt động ma trận bao gồm:

  • Hình dạng và kích thước của ma trận đầu vào
  • Hoạt động ma trận được sử dụng
  • Số lượng tài nguyên tính toán trên hệ thống
  • Mẫu sử dụng tài nguyên tính toán của cơ sở mã cụ thể chạy (các) hoạt động ma trận

Cho bộ xử lý Intel® Xeon® PHI ™

Một số cài đặt ví dụ (Bash Môi trường) được liệt kê dưới đây là đường cơ sở để điều chỉnh hiệu suất.

Bộ tham số đầu tiên xác định số lượng chủ đề sẽ được sử dụng.

export NUM_OF_THREADS=$(grep 'model name' /proc/cpuinfo | wc -l)
export OMP_NUM_THREADS=$(( $NUM_OF_THREADS / 4  ))
export MKL_NUM_THREADS=$(( $NUM_OF_THREADS / 4  ))

Các tham số

$CONDA create -y -c intel -n idp intelpython3_core python=3 
1 và
$CONDA create -y -c intel -n idp intelpython3_core python=3 
2 Chỉ định số lượng luồng cho các hoạt động ma trận. Trên nút bộ xử lý Intel Xeon Phi dành riêng cho công việc tính toán, chúng tôi khuyên bạn nên sử dụng một luồng trên mỗi lõi có sẵn làm điểm khởi đầu để điều chỉnh hiệu suất.

Bộ tham số thứ hai chỉ định hành vi của mỗi luồng.

export KMP_BLOCKTIME=800
export KMP_AFFINITY=granularity=fine,compact
export KMP_HW_SUBSET=${OMP_NUM_THREADS}c,1t

Tham số

$CONDA create -y -c intel -n idp intelpython3_core python=3 
3 chỉ định thời gian một luồng sẽ duy trì hoạt động sau khi hoàn thành một tác vụ tính toán. Khi
$CONDA create -y -c intel -n idp intelpython3_core python=3 
3 dài hơn giá trị mặc định là 200 mili giây, sẽ có ít chi phí hơn để đánh thức luồng cho (các) tính toán tiếp theo.

Tham số

$CONDA create -y -c intel -n idp intelpython3_core python=3 
5 chỉ ra vị trí của bối cảnh luồng
$CONDA create -y -c intel -n idp intelpython3_core python=3 
6 lân cận. Chẳng hạn, cài đặt của & nbsp; ________ 27 gán luồng
$CONDA create -y -c intel -n idp intelpython3_core python=3 
6
$CONDA create -y -c intel -n idp intelpython3_core python=3 
9 cho bối cảnh luồng miễn phí càng gần với bối cảnh luồng nơi đặt luồng
source $ACTIVATE idp
0. Một hướng dẫn chi tiết cho cài đặt
$CONDA create -y -c intel -n idp intelpython3_core python=3 
5 có thể được tìm thấy tại liên kết này.

Cài đặt

source $ACTIVATE idp
2 Chỉ định số lượng luồng được đặt trên mỗi lõi bộ xử lý.

Tham số cuối cùng kiểm soát hành vi phân bổ bộ nhớ.

export HPL_LARGEPAGE=1

Tham số

source $ACTIVATE idp
3 cho phép kích thước trang lớn cho phân bổ bộ nhớ của các đối tượng dữ liệu. Có một kích thước trang lớn có thể cho phép các mẫu bộ nhớ hiệu quả hơn cho các ma trận lớn do hành vi bộ đệm nhìn tốt hơn.

Đối với bộ xử lý Intel® Xeon® (bộ xử lý được phát hành với tên mã mới hơn Haswell)

Một số cài đặt ví dụ (bash môi trường) là:

export NUM_OF_THREADS=$(grep 'model name' /proc/cpuinfo | wc -l)
export OMP_NUM_THREADS=$(( $NUM_OF_THREADS ))
export MKL_NUM_THREADS=$(( $NUM_OF_THREADS ))
export KMP_HW_SUBSET=${OMP_NUM_THREADS}c,1t  
export HPL_LARGEPAGE=1
export KMP_BLOCKTIME=800

Mẹo 2: Sử dụng Bố cục bộ nhớ Fortran* cho các mảng Numpy (giả sử các hoạt động ma trận được gọi là nhiều lần)

Các mảng Numpy có thể sử dụng Bố cục bộ nhớ Fortran (thứ tự đa số) hoặc bố cục bộ nhớ C (thứ tự hàng hàng). Nhiều API Numpy và SCIPY được triển khai với

source $ACTIVATE idp
4 và
source $ACTIVATE idp
5, yêu cầu bố cục bộ nhớ Fortran. Nếu một mảng numpy bố cục bộ nhớ C được chuyển đến API Numpy hoặc Scipy sử dụng thứ tự Fortran trong nội bộ, nó sẽ thực hiện chuyển đổi tốn kém trước. Nếu một mảng numpy được sử dụng nhiều lần, hãy chuyển đổi nó thành thứ tự Fortran trước khi sử dụng đầu tiên.

Hàm Python có thể cho phép chuyển đổi bố cục bộ nhớ này là

source $ACTIVATE idp
6. Đây là một ví dụ về mã ngắn:

import numpy as np 
matrix_input = np.random.rand(5000, 5000)
matrix_fortran = np.asfortranarray(matrix_input, dtype=matrix_input.dtype)

Mẹo 3: Lưu kết quả của hoạt động ma trận trong ma trận đầu vào (source $ACTIVATE idp7)

Đó là điều tự nhiên để có được các đầu ra lớn từ các hoạt động ma trận có ma trận lớn làm đầu vào. Việc tạo ra các cấu trúc dữ liệu bổ sung có thể thêm chi phí.

Nhiều hàm đại số tuyến tính ma trận ____2020 có tham số tùy chọn gọi là

source $ACTIVATE idp
9, có thể được đặt thành
git clone https://github.com/IntelPython/ibench.git
cd ibench
python setup.py install
0. Tùy chọn này làm cho chức năng cung cấp kết quả bằng cách ghi đè đầu vào thay vì phân bổ một mảng numpy mới. Sử dụng phân tách LU từ thư viện
$CONDA create -y -c intel -n idp intelpython3_core python=3 
0 làm ví dụ, chúng tôi có:

INSTALLATION_DIR=$HOME/miniconda3
bash $<DOWNLOAD_PATH>/Miniconda3-latest-Linux-x86_64.sh -b -p $INSTALLATION_DIR -f 
CONDA=${INSTALLATION_DIR}/bin/conda
ACTIVATE=${INSTALLATION_DIR}/bin/activate
0

Mẹo 4: Sử dụng các mô -đun python git clone https://github.com/IntelPython/ibench.git cd ibench python setup.py install2 hoặc git clone https://github.com/IntelPython/ibench.git cd ibench python setup.py install3

Song song hiệu quả là một công thức đã biết để mở khóa hiệu suất trên bộ xử lý Intel với nhiều hơn một lõi. Tuy nhiên, lý do về sự song song trong Python, tuy nhiên, đôi khi ít hơn trong suốt. Các thư viện Python cá nhân có thể thực hiện cơ chế và mức độ song song của riêng họ. Khi sự kết hợp của các thư viện Python được sử dụng, nó có thể dẫn đến một mô hình sử dụng ngoài ý muốn của các tài nguyên tính toán. Ví dụ, một số mô-đun Python (ví dụ: đa xử lý) và thư viện (ví dụ: Scikit-Learn*) đưa song song thành một số chức năng bằng cách đưa nhiều quy trình Python. Mỗi quy trình Python này có thể quay một số luồng theo quy định của thư viện.

Đôi khi số lượng luồng có thể lớn hơn số lượng tài nguyên CPU có sẵn theo cách được gọi là mô tả quá mức. Chủ đề quá mức có thể làm chậm một công việc tính toán. Trong phân phối Intel cho Python, một số mô -đun giúp quản lý các luồng hiệu quả hơn bằng cách tránh quá mức. Đây là thư viện đa xử lý tĩnh (SMP) và mô-đun Python cho các khối xây dựng luồng Intel® (Intel® TBB).

Trong Bảng 1, các kỹ sư Intel Anton Gorshkov và Anton Malakhov cung cấp các khuyến nghị về mô -đun nào sẽ sử dụng cho ứng dụng Python dựa trên các đặc điểm song song, để đạt được đăng ký luồng tốt cho các ứng dụng Python song song. Những khuyến nghị này có thể đóng vai trò là điểm khởi đầu để điều chỉnh sự song song.

Bảng 1. Khuyến nghị mô -đun dựa trên các đặc điểm song song.

Cấp độ song song bên trong

Mức độ song song ngoài cùng

Công việc cân bằng

Công việc không cân bằng

Đăng ký thấp

Đăng ký cao

& nbsp;

Đăng ký thấp

Đăng ký cao

& nbsp;

Python

Đăng ký cao

KMP_COMPOSABILITY

& nbsp;

Python

INSTALLATION_DIR=$HOME/miniconda3
bash $<DOWNLOAD_PATH>/Miniconda3-latest-Linux-x86_64.sh -b -p $INSTALLATION_DIR -f 
CONDA=${INSTALLATION_DIR}/bin/conda
ACTIVATE=${INSTALLATION_DIR}/bin/activate
1

Python với SMP

Python với các khối xây dựng luồng Intel®

Dưới đây chúng tôi cung cấp các hướng dẫn dòng lệnh chính xác cho từng mục trong bảng.

INSTALLATION_DIR=$HOME/miniconda3
bash $<DOWNLOAD_PATH>/Miniconda3-latest-Linux-x86_64.sh -b -p $INSTALLATION_DIR -f 
CONDA=${INSTALLATION_DIR}/bin/conda
ACTIVATE=${INSTALLATION_DIR}/bin/activate
3

Các mô -đun SMP và Intel TBB có thể dễ dàng được cài đặt trong Anaconda* hoặc cài đặt Python miniconda bằng cách sử dụng các lệnh của trình cài đặt Conda:

INSTALLATION_DIR=$HOME/miniconda3
bash $<DOWNLOAD_PATH>/Miniconda3-latest-Linux-x86_64.sh -b -p $INSTALLATION_DIR -f 
CONDA=${INSTALLATION_DIR}/bin/conda
ACTIVATE=${INSTALLATION_DIR}/bin/activate
4

Cụ thể hơn, chúng tôi giải thích các lệnh BASH cho từng kịch bản có thể được nêu trong Bảng 1. Giả sử tập lệnh Python mà chúng tôi cố gắng chạy được gọi là

git clone https://github.com/IntelPython/ibench.git
cd ibench
python setup.py install
4, cú pháp để gọi tập lệnh tại một dòng lệnh bash là:

INSTALLATION_DIR=$HOME/miniconda3
bash $<DOWNLOAD_PATH>/Miniconda3-latest-Linux-x86_64.sh -b -p $INSTALLATION_DIR -f 
CONDA=${INSTALLATION_DIR}/bin/conda
ACTIVATE=${INSTALLATION_DIR}/bin/activate
5

Để đọc về các tài nguyên bổ sung cho Intel TBB và SMP, chúng tôi đề xuất hướng dẫn SCIPY 2017 do Anton Malakhov đưa ra. Hoặc bạn có thể tìm thấy một hướng dẫn khi giải phóng hiệu suất song song của các chương trình Python*.

Mẹo 5: Bật các trang khổng lồ trong suốt để phân bổ bộ nhớ trên Cray Linux*

HĐH Linux* có một tính năng gọi là các trang khổng lồ có thể tăng tốc các chương trình với dấu chân bộ nhớ lớn từ 50 % trở lên. Đối với nhiều hệ thống Linux, chức năng khổng lồ được cung cấp một cách minh bạch bởi kernel. Cho phép các trang khổng lồ cho Python trên Cray Linux yêu cầu một số bước bổ sung. Nhóm của chúng tôi tại Intel đã xác minh rằng sự hiện diện của các trang khổng lồ là cần thiết để đạt được các màn trình diễn tốt nhất có thể cho một số hoạt động ma trận lớn (> 5000 x 5000 kích thước ma trận). Các hoạt động này bao gồm các phân tách LU, QR, SVD và Cholesky.

Đầu tiên, trên hệ thống Cray có liên quan, hãy kiểm tra xem mô -đun HỆ THỐNG HUGEPAGE có được tải không. Ví dụ: nếu các mô -đun TCL* được sử dụng, bạn có thể tìm và tải mô -đun hệ thống khổng lồ thông qua các hướng dẫn tương tự như:

INSTALLATION_DIR=$HOME/miniconda3
bash $<DOWNLOAD_PATH>/Miniconda3-latest-Linux-x86_64.sh -b -p $INSTALLATION_DIR -f 
CONDA=${INSTALLATION_DIR}/bin/conda
ACTIVATE=${INSTALLATION_DIR}/bin/activate
6

Bạn cũng sẽ cần phải chạy hướng dẫn cài đặt một dòng của gói

git clone https://github.com/IntelPython/ibench.git
cd ibench
python setup.py install
9 trong môi trường Conda Python hoặc cài đặt:

Bạn cũng sẽ cần chạy hướng dẫn cài đặt một dòng của gói

git clone https://github.com/IntelPython/ibench.git
cd ibench
python setup.py install
9 trong môi trường Conda Python hoặc cài đặt:

INSTALLATION_DIR=$HOME/miniconda3
bash $<DOWNLOAD_PATH>/Miniconda3-latest-Linux-x86_64.sh -b -p $INSTALLATION_DIR -f 
CONDA=${INSTALLATION_DIR}/bin/conda
ACTIVATE=${INSTALLATION_DIR}/bin/activate
7

Sau đó, nhị phân

export NUM_OF_THREADS=$(grep 'model name' /proc/cpuinfo | wc -l)
export OMP_NUM_THREADS=$(( $NUM_OF_THREADS / 4  ))
export MKL_NUM_THREADS=$(( $NUM_OF_THREADS / 4  ))
1 trong môi trường Conda sẽ phân bổ bộ nhớ cho các đối tượng sử dụng các trang khổng lồ.

Thông tin sản phẩm và hiệu suất