2017-12-07 42 views
5

Tôi đã đọc nhiều bài viết về julia và hiệu quả của nó. nhưng không có nơi nào, tôi có thể tìm thấy đầu mối về lý do tại sao nhóm julia quyết định sử dụng cột chính cho các hoạt động ma trận. là bởi vì cách hoạt động của nó trên ma trận phù hợp với cột chính hay gì đó.tại sao Julia sử dụng cột chính? là nó nhanh chóng

Cảm ơn trước.

+0

Tại sao DNA xoắn ốc theo cách này và không phải là khác? Quyết định này chủ yếu là do một số vi phạm đối xứng lịch sử với một chi phí chuyển đổi bit được thêm vào –

+0

Tôi thực sự không biết về DNA. nhưng có trong thực hiện nó làm việc nhiều hơn hoặc ít hơn tương tự như C. vì vậy tôi cảm thấy có thể có một lý do tại sao họ đã chọn cột lớn thay vì sau đó hàng chính? –

+1

Hầu hết các phép tính có thể được viết lại với tất cả các biến được chuyển đổi. Điều này sẽ biến hàng thành các cột. Thứ tự được chọn làm cho nhân với một véc-tơ ở một bên nhanh hơn mặt kia và khi bạn lựa chọn, bạn nên truyền bá lựa chọn cho tất cả các phép tính còn lại trong thuật toán của bạn. Cụ thể, nhân 'w * A' chậm hơn' A * v'. Vì vậy, có câu trả lời: mọi người thích 'A * v' –

Trả lời

0

"Mảng nhiều chiều trong Julia được lưu trữ theo thứ tự cột lớn này có nghĩa là mảng được xếp chồng lên nhau một cột tại một thời điểm này có thể được xác nhận bằng cách sử dụng chức năng vec hoặc cú pháp. [:] ..."

"Quy ước đặt hàng mảng này là phổ biến trong nhiều ngôn ngữ như Fortran, Matlab, và R (để đặt tên một vài). Việc thay thế cho thứ tự cột lớn là thứ tự hàng lớn, đó là quy ước được C và Python (thông thường)) trong số các ngôn ngữ khác. "

cho ví dụ và thảo luận về sự khác biệt hiệu suất https://docs.julialang.org/en/latest/manual/performance-tips/

+1

từ liên kết: "Mảng được lưu trữ liên tục trong bộ nhớ, cho phép tự vector hóa CPU và truy cập bộ nhớ ít hơn do bộ nhớ đệm. Đây là những lý do tương tự được khuyến nghị truy cập mảng theo thứ tự cột lớn (xem bên trên). " –

Các vấn đề liên quan