2008-11-28 38 views
5

Tôi tìm thấy rất nhiều sử dụng cho MATLAB, nhưng chủ nhân hiện tại của tôi không có giấy phép MATLAB: có một cho Comsol, đi kèm với Comsol Script. Trong nháy mắt đầu tiên, kịch bản comsol giống hệt với MATLAB, nhưng sau một thời gian bạn thấy sự khác biệt kỳ lạ. Nhiều tính năng của đồ họa không có ở đó và bạn không thể xuất các số liệu sang định dạng đồ hoạ vector. Nhưng tệ hơn là hiệu suất có vẻ kém hơn nhiều đối với tính toán nặng, có rất nhiều sự cố về các thuật toán tầm thường.Sự khác biệt giữa tập lệnh MATLAB và COMSOL?

(Tất nhiên, mục đích của gói COMSOL là hoàn toàn khác nhau, nhưng tôi chỉ quan tâm đến việc sử dụng nó như matlab, vì chúng ta không sở hữu một giấy phép matlab.)

Có sự khác biệt về matlab và lõi kịch bản Comsol?

Họ có xử lý tính toán bộ nhớ và ma trận khác nhau không?

Trả lời

2

Họ có xử lý tính toán bộ nhớ và ma trận khác nhau không?

Gần như chắc chắn, có (ở cấp độ triển khai). Tôi đã không nghe nói về comsol trước đây, nhưng nó không đáng ngạc nhiên rằng nó chậm hơn. Mathworks đã đặt rất nhiều nỗ lực vào việc tối ưu hóa hiệu suất trong vài năm qua. Sử dụng JIT đã loại bỏ rất nhiều chi phí thông dịch viên. Họ cũng làm thủ thuật bộ nhớ cache thân thiện như thực hiện

mybigresult = big1 .* big2 + big1 .* big3 

như (C-style pseudo-code)

for (size_t i=0; i<numelement; i++) { 
    mybigresult[i] = big1[i] * big2[i] + big1[i] * big3[i]; 
} 

thay vì tạo temporaries và bộ nhớ quét nhiều lần. Cuối cùng, trong các phiên bản gần đây nhất, họ đã thêm hỗ trợ đa luồng cho các phần lớn phụ trợ của họ. (Lưu ý: ngữ nghĩa, Matlab vẫn là luồng đơn).

Một số lựa chọn thay thế Matlab miễn phí: octave (nhằm mục đích tương đương với mã nguồn mở), python + numpy (ngôn ngữ rất khác, nhưng với các tính năng cơ bản tương tự).

Nếu Matlab giúp bạn làm việc hiệu quả hơn, bạn có thể muốn yêu cầu chủ lao động trả tiền giấy phép ... ($ 50k/năm lương * 10% cải thiện năng suất) = $ 5k Matlab được mua (chỉ cần tạo số ở đây).

+1

Comsol phát triển từ mô-đun MATLAB 6, tất cả thư viện, tài liệu trợ giúp, v.v. giống hệt nhau. Không giống như các bản sao của MATLAB, hầu như tất cả các mã MATLAB đều có thể chạy dưới kịch bản lệnh comsol mà không sửa đổi gì cả. Đó là lý do tại sao câu hỏi là có liên quan. – Fredriku73

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