เรากำลังคำนวณอะไรบางอย่างที่ runtime ถูกผูกมัดโดยการดำเนินการเมทริกซ์ (รายละเอียดบางอย่างด้านล่างหากสนใจ) ประสบการณ์นี้ทำให้เกิดคำถามต่อไปนี้:
ชาวบ้านมีประสบการณ์กับการทำงานของห้องสมุด Java สำหรับคณิตศาสตร์เมทริกซ์ (เช่นทวีคูณผกผัน ฯลฯ ) หรือไม่? ตัวอย่างเช่น:
ฉันค้นหาและพบว่าไม่มีอะไร
รายละเอียดการเปรียบเทียบความเร็วของเรา:
เราใช้ Intel FORTRAN (ifort (IFORT) 10.1 20070913) เราได้นำมาใช้ใหม่ใน Java (1.6) โดยใช้ Apache commons math 1.2 matrix ops และยอมรับความถูกต้องของตัวเลขทั้งหมด (เรามีเหตุผลที่ต้องการเป็นภาษาจาวา) (Java doubles, Fortran real * 8) Fortran: 6 นาที, Java 33 นาที, เครื่องเดียวกัน การทำโปรไฟล์ jvisualm แสดงเวลาที่ใช้ใน RealMatrixImpl {getEntry, isValidCoordinate} (ซึ่งดูเหมือนว่าจะหายไปใน Apache Commons math 2.0 แต่ 2.0 ไม่เร็วขึ้น) Fortran ใช้งานประจำของ Atlas BLAS (dpotrf เป็นต้น)
เห็นได้ชัดว่าสิ่งนี้อาจขึ้นอยู่กับรหัสของเราในแต่ละภาษา แต่เราเชื่อว่าส่วนใหญ่อยู่ในการดำเนินการเมทริกซ์ที่เทียบเท่า
ในการคำนวณอื่น ๆ ที่ไม่เกี่ยวข้องกับไลบรารี Java ไม่ได้ช้ากว่าและบางครั้งก็เร็วกว่ามาก