Chúng tôi đang tính toán một cái gì đó mà thời gian chạy bị ràng buộc bởi các hoạt động ma trận. (Một số chi tiết bên dưới nếu quan tâm.) Kinh nghiệm này đã đưa ra câu hỏi sau:
Dân gian có kinh nghiệm về hiệu năng của các thư viện Java cho toán học ma trận (ví dụ: nhân, nghịch đảo, v.v.) không? Ví dụ:
Tôi tìm kiếm và không tìm thấy gì.
Chi tiết so sánh tốc độ của chúng tôi:
Chúng tôi đang sử dụng Intel FORTRAN (ifort (IFORT) 10.1 20070913). Chúng tôi đã thực hiện lại nó trong Java (1.6) bằng cách sử dụng ops ma trận 1.2 commons toán học của Apache và nó đồng ý với tất cả các chữ số chính xác của nó. (Chúng tôi có lý do để muốn nó trong Java.) (Java nhân đôi, Fortran real * 8). Fortran: 6 phút, Java 33 phút, cùng một máy. jvisualm profiling cho thấy nhiều thời gian dành cho RealMatrixImpl. {getEntry, isValidCoordine} (dường như đã biến mất trong Apache commons math 2.0, nhưng 2.0 không nhanh hơn). Fortran đang sử dụng các thói quen của Atlas BLAS (dpotrf, v.v.).
Rõ ràng điều này có thể phụ thuộc vào mã của chúng tôi trong từng ngôn ngữ, nhưng chúng tôi tin rằng hầu hết thời gian là trong các hoạt động ma trận tương đương.
Trong một số tính toán khác không liên quan đến các thư viện, Java đã không chậm hơn nhiều và đôi khi nhanh hơn nhiều.