2011-05-04 56 views
4

我正在做一個神經網絡項目(大部分線性代數計算,因爲你知道),所以我已經使用Jblas這是一個偉大的庫,但在我安裝Ubuntu最新版本11.04後,我遇到了一些麻煩使用它,(錯誤不能複製臨時bla bla),如果我做了一些工作,我會解決這個問題。矩陣庫更新

但它自己的錯誤是一個警告我應該真的使用本機庫嗎?知道我已經逃脫C++因爲這種錯誤(Java作爲便攜式和實現更容易等)

所以我回到了Apache Commons這是很不錯(功能:很多包,良好的設計),但性能是最糟糕!

這使我陷入了困境,現在的Apache性能處理器的性能我們是否應該忽視像Apache這樣的庫的性能低下,並指望在新處理器中改進技術和多線程?

你覺得我應該通過使用JBLAS做我半路上,

  1. 我應該使用Apache的?
  2. 繼續使用JBLA(修復錯誤)並繼續前進
  3. 使用另一個2011年新的有希望的JAVA線性代數庫?

編輯:錯誤是: 「org.jblas錯誤無法加載複製鏈接文件:java.lang.UnsatisfiedLinkError中:/tmp/jblas2930149998010945438libjblas_arch_flavor.so:libgfortran.so.3:無法打開共享目標文件:沒有這樣的文件或目錄。「

後我諮詢JBLAS的作者在其Facebook Page他們告訴我,我需要libgfortran3進行安裝,並解決了問題「萬一有人得到了同樣的問題」

+0

我不知道你得到什麼樣的錯誤,或者在哪裏。 Ubuntu 11不會對我發現的Java產生負面影響。 – 2011-05-04 11:28:32

+0

它不影響JBLAS,我會在這裏返回錯誤它自己僅僅5分鐘 – 2011-05-04 11:35:57

回答

0

我不認爲一個解釋像Java這樣的語言將會給你原生代碼的原始性能。這就是爲什麼FORTRAN/C/C++在科學計算中仍然非常活躍的原因。就我所知,像LAPACK這樣的軟件包仍然是黃金標準。

我不確定Colt是否會讓我變成騙子。我對此沒有親身經歷,但如果我仍然在這方面工作,我一定會去看看。

如果這真的是你最大的問題,我會繼續與JBLAS。您可以修復該錯誤。繼續。

+2

Java不是純粹的解釋語言。 JVM有一個JIT(即時)編譯器,它將字節碼編譯爲相當高效的本地代碼。 Java並不慢,因爲它不會提前編譯爲本機機器碼。 – Jesper 2011-05-04 12:06:57

+1

我意識到Java並不是純粹的解釋,但這並沒有改變Java沒有深入廣泛應用於科學計算的事實。 – duffymo 2011-05-05 17:04:15

+0

如果你知道這不是一個有效的論點,那麼你爲什麼使用它?注意:根據我自己的經驗,我知道JVM並不是原始數據處理的最佳平臺。但據我所知,這是因爲JVM支持高於速度的兼容性。例如,'java.lang.Math'中的三角函數方法是用軟件實現的,而不是使用硬件的可用函數,因爲它可以更好地保證在任何操作系統上結果都是一樣的。 – Jesper 2011-05-05 18:04:17

2

我以前成功使用過JAMA。它由Mathworks(Matlab的創建者)和NIST創建。這是一個包含基本線性代數方法的很好的包,但它可能不符合您的速度要求。