E**********e 发帖数: 1736 | 1 【 以下文字转载自 Java 讨论区 】
发信人: ExpressoLove (MoneyForNothing), 信区: Java
标 题: 怎样使的java double for loop 加快
发信站: BBS 未名空间站 (Sat Jul 30 09:46:45 2016, 美东)
最近用java 编了个newton raphson 的算法。 就是需要大量的2维矩阵/数组迭代。 原
始数据有150000x50。 发现迭代7,8次得到最优解需要有一分钟。如果用cross
validation ,再加个额外的30次cycle的话,那得要1个小时。 但是用python的numpy
pacakge要快点多。 当然所有2维数组计算,乘除, 加减,逆矩阵都是自己写的小
code, 都是用for loop。
请问怎样才能speed up。 |
t***a 发帖数: 416 | 2 矩阵运算可以试试多线程,你用java的话也很难用gpu,就多开线程吧,线程开的多能
加速很多的
numpy
【在 E**********e 的大作中提到】 : 【 以下文字转载自 Java 讨论区 】 : 发信人: ExpressoLove (MoneyForNothing), 信区: Java : 标 题: 怎样使的java double for loop 加快 : 发信站: BBS 未名空间站 (Sat Jul 30 09:46:45 2016, 美东) : 最近用java 编了个newton raphson 的算法。 就是需要大量的2维矩阵/数组迭代。 原 : 始数据有150000x50。 发现迭代7,8次得到最优解需要有一分钟。如果用cross : validation ,再加个额外的30次cycle的话,那得要1个小时。 但是用python的numpy : pacakge要快点多。 当然所有2维数组计算,乘除, 加减,逆矩阵都是自己写的小 : code, 都是用for loop。 : 请问怎样才能speed up。
|
l****u 发帖数: 1764 | 3 如果核心运算就是矩阵运算,可以考虑用matlab。matlab的函数负责矩阵运算,然后编
译成package在java里面调用 |
E**********e 发帖数: 1736 | 4 多线程还没学到。 得等等。
【在 t***a 的大作中提到】 : 矩阵运算可以试试多线程,你用java的话也很难用gpu,就多开线程吧,线程开的多能 : 加速很多的 : : numpy
|
E**********e 发帖数: 1736 | 5 这个有点意思。 matlab 也会点。 你的意思就是在matlab骗个矩阵运算函数,然后在
java里调用? 有是么列子可以吗?
【在 l****u 的大作中提到】 : 如果核心运算就是矩阵运算,可以考虑用matlab。matlab的函数负责矩阵运算,然后编 : 译成package在java里面调用
|
e********2 发帖数: 495 | 6 JNI
numpy
【在 E**********e 的大作中提到】 : 【 以下文字转载自 Java 讨论区 】 : 发信人: ExpressoLove (MoneyForNothing), 信区: Java : 标 题: 怎样使的java double for loop 加快 : 发信站: BBS 未名空间站 (Sat Jul 30 09:46:45 2016, 美东) : 最近用java 编了个newton raphson 的算法。 就是需要大量的2维矩阵/数组迭代。 原 : 始数据有150000x50。 发现迭代7,8次得到最优解需要有一分钟。如果用cross : validation ,再加个额外的30次cycle的话,那得要1个小时。 但是用python的numpy : pacakge要快点多。 当然所有2维数组计算,乘除, 加减,逆矩阵都是自己写的小 : code, 都是用for loop。 : 请问怎样才能speed up。
|
B**Y 发帖数: 786 | 7 矩阵求逆你都用了那些什么各种分解么 感觉要不少工作量啊
numpy
【在 E**********e 的大作中提到】 : 这个有点意思。 matlab 也会点。 你的意思就是在matlab骗个矩阵运算函数,然后在 : java里调用? 有是么列子可以吗?
|
l****u 发帖数: 1764 | 8 google java call matlab 很多例子吧
:这个有点意思。 matlab 也会点。 你的意思就是在matlab骗个矩阵运算函数,然后在
:java里调用? 有是么列子可以吗?
【在 E**********e 的大作中提到】 : 这个有点意思。 matlab 也会点。 你的意思就是在matlab骗个矩阵运算函数,然后在 : java里调用? 有是么列子可以吗?
|
h*****e 发帖数: 1153 | 9 call c++ 吧。 用mkl或者免费的eigen
numpy
【在 E**********e 的大作中提到】 : 这个有点意思。 matlab 也会点。 你的意思就是在matlab骗个矩阵运算函数,然后在 : java里调用? 有是么列子可以吗?
|