并行单边jacobi算法 奇偶序列
来源:互联网 发布:ubuntu退出vim命令 编辑:程序博客网 时间:2024/04/30 14:18
单边jacobi算法大家都非常熟悉,就是不停地计算旋转矩阵,简单说就是计算c和s,然后旋转。然而其中做一轮旋转(任何两列都需要旋转一次)需要n*(n-1)/2次单独的旋转,这样的旋转其实是可以并行来实现的,这也就是为何jacobi算法最近比较热门的原因了。
通过这几天研究jacobi算法,我选择了从奇偶序列着手来实现其并行算法。
下面是8*8的矩阵,其中for循环可以做并行实现的,但是pc机上不支持并行,只有FPGA上面可以实现并行,所以下一步打算从FPGA上面入手,实现并行jacobi算法的硬件。
void jacobi()
{
double a[Matrix_M][Matrix_M]={{0.4218 , 0.6787, 0.2769 , 0.4387 , 0.7094 , 0.9597 , 0.8909 , 0.8143}
,{ 0.9157 , 0.7577 , 0.0462 , 0.3816 , 0.7547 , 0.3404, 0.9593 , 0.2435}
,{ 0.7922 , 0.7431 , 0.0971 , 0.7655 , 0.2760 , 0.5853 , 0.5472 , 0.9293}
,{ 0.9595 , 0.3922 , 0.8235 , 0.7952 , 0.6797 , 0.2238 , 0.1386 , 0.3500}
,{ 0.6557 , 0.6555 , 0.6948 , 0.1869 , 0.6551 , 0.7513 , 0.1493 , 0.1966}
,{ 0.0357 , 0.1712 , 0.3171 , 0.4898 ,0.1626 , 0.2551 , 0.2575 , 0.2511}
,{ 0.8491, 0.7060 , 0.9502 , 0.4456, 0.1190 , 0.5060 , 0.8407 , 0.6160}
,{ 0.9340 , 0.0318 , 0.0344 , 0.6463 , 0.4984 , 0.6991 , 0.2543, 0.4733}};
int cnt, l;
int order[Matrix_M]={1,2,3,4,5,6,7,8};
int couplenums;
int sequence[Matrix_M]={1,2,3,4,5,6,7,8};
int oddoreven;
int numi[Matrix_M];
int numj[Matrix_M];
int k;
int m;
printf("##################################\n");
for(m=0;m<Matrix_M;m++){
for(cnt=0;cnt<Matrix_M;cnt++)
{
printf(" %10f ", a[m][cnt]);
}
printf("\n");
}
printf("\n##################################\n");
for(k=0;k<56;k++)
{
numbercreation(numi, numj , k, sequence, &couplenums);
for(l=0;l<couplenums;l++){
Orthogonality_operation(numi[l], numj[l], a[numi[l]-1], a[numj[l]-1], order);
printf("\n##################################\n");
for(m=0;m<Matrix_M;m++){
for(cnt=0;cnt<Matrix_M;cnt++)
{
printf(" %10f ", a[m][cnt]);
}
printf("\n");
}
}
printf("\n##################################\n");
}
for(m=0;m<Matrix_M;m++)
{
printf(" %d ",order[m]);
}
}
- 并行单边jacobi算法 奇偶序列
- 基于单边Jacobi旋转的并行SVD算法-MPI框架
- Jacobi迭代并行算法
- 基于单边jacobi的奇异值分解(SVD)
- [算法学习]整数序列的奇偶分类
- jacobi迭代算法
- 并行计算奇异值分解--Jacobi旋转
- Erlang -奇偶并行排序
- jacobi
- jacobi
- 算法---奇偶
- erlang 实现并行奇偶排序
- #公式与实现# Jacobi迭代的并行实现
- 手把手教你写并行Jacobi迭代
- 并行计算奇异值分解--Jacobi旋转(转)
- Jacobi迭代算法matlab版
- 输出奇偶数位二进制序列
- 排序算法--奇偶排序
- memcpy和memmove函数的区别和实现
- java linux下读写中文
- 网络状态
- instanceof, isinstance,isAssignableFrom的区别
- 【轻松学排序算法】眼睛直观感受几种常用排序算法
- 并行单边jacobi算法 奇偶序列
- Android 实时获取麦克风输入音量的代码
- 线程池原理及创建(C++实现)
- C#泛型编程(Generic Programming)
- window。onload在在ie与火狐的区别
- POJ 1611 The Suspects (并查集)
- file_operation(文件操作) file(文件) inode(节点)
- Struts2 之拦截器interceptor(3)
- 开源的ANE工具包-ANEToolkit(手机网络、SD卡状态、振动等)