作者:桂。

时间:2018-04-23  21:12:02

链接:http://www.cnblogs.com/xingshansi/p/8921815.html


前言

本文主要是复数矩阵分解的拆解思路(矩阵求逆/特征值分解)一文的补充。

一、并行拆解思路

  回顾前文,对于8X8的实数矩阵:

仿真:

clc;clear all;
X = rand(8);
R = X+X';
Iteration = 20;
[D,U] = Jac_sweep(R,Iteration);
[u,s,v] = svd(R);
[sort(diag(s)),sort(abs(diag(D)))]

  Jac_sweep并行代码:

function [D,U] = Jac_sweep(A,Iteration)
iter = 0;
n = size(A,1);
U = eye(n);
A_c = [1,2;3,4;5,6;7,8;...2,3;4,5;6,7;1,8;...1,3;2,4;5,7;6,8;...3,5;4,6;1,7;2,8;...1,4;3,6;5,8;2,7;...2,5;4,7;1,6;3,8;...1,5;2,6;3,7;4,8];while iter <Iterationiter = iter+1;for flag = 1:size(A_c,1)/4T = eye(n);for t = 1:4p = A_c((flag-1)*4+t,1);q = A_c((flag-1)*4+t,2);y = 2*A(p,q);x = A(p,p)-A(q,q);phi = atan2(y,x)/2;T(p,p) = cos(phi);T(q,q) = cos(phi);T(p,q) = -sin(phi);T(q,p) = sin(phi);endD = T'*A*T;U = U*T;A = D;end
end

  

打印结果与SVD分解的结果一致,并行思路可行。其他维度依次类推。对于维度N的矩阵,

  • N为偶数,可并行N/2路;
  • N为奇数,可并行[N-1]/2路;

二、改进思路

  每一次sweep,需要1次Cordic:phi = atan2(y,x)/2,和两次Cordic(两次可并行):cos(phi) / sin(phi),二者串行。对于atan2操作,可借鉴复数相位近似估计一文的思路,即对于atan的计算,考虑到CORDIC耗时较长,内存资源充足的情况下,1)直接查表;若内存相对紧张,2)多项式逼近。二者较CORDIC均减少运算时间。

  另外,关于定点仿真可调用fi工具包,其中CORDIC对应指令:cordicatan2、cordiccos......

Jacobi并行拆解相关推荐

  1. Jacobi并行拆解【补充】

    作者:桂. 时间:2018-04-24  22:04:52 链接:http://www.cnblogs.com/xingshansi/p/8934373.html 前言 本文为Jacobi并行拆解一文 ...

  2. 复数矩阵分解的拆解思路(矩阵求逆/特征值分解)

    作者:桂. 时间:2017-10-26  07:11:02 链接:http://www.cnblogs.com/xingshansi/p/7735016.html 前言 主要记录特征值分解的硬件实现思 ...

  3. MIPS指令集处理器设计(支持64条汇编指令)

    一.题目背景和意义 二.国内外研究现状 (略) 三.MIPS指令集处理器设计与实现 (一).MIPS指令集功能性梳理 1.MIPS指令集架构 (1).mips基础指令集格式总结 MIPS是(Micro ...

  4. Jacobi的GPU并行迭代 OpenACC

    目录 1. 搭建OpenACC运行环境 1.1 安装CUDA11.1 1.2 配置CUDA环境 1.3 安装OpenACC 21.3 1.4 配置openACC环境 2. 程序执行 2.1 GPU上并 ...

  5. MPI求解Jacobi迭代的并行策略

    二阶九点差分法 给定一个泊松方程如下, { − Δ u = f  in  Ω , u

  6. SVD分解的并行实现

    在之前的文章中,我对SVD进行了大致的了解,它在互联网高端领域中有广泛的应用,至于它的一些详细应 用以后再进一步学习.现在主要的问题是如何有效地实现SVD分解,接下来我会先用两种方法来实现SVD分 解 ...

  7. 市面上常见的TCP/IP以太网一卡通设备硬件产品电路拆解分析

    从业十多年了,经常听到业务员抱怨单丢是因为别家产品与我们相同,当问到为什么客户选择别家产品时,业务员一般也总是会说:"都是一样的产品,别家的便宜几十块嘛.",当问及怎么会是一样的呢 ...

  8. MPI程序例子 test_8_1_2.c -- 对等模式的MPI程序,Jacobi迭代 (MPI_Send、MPI_Recv)

    NOTE: 这里首先需要弄明白 Jacobi迭代是做什么的,怎么操作. 网上找到的一篇讲解使用 MPI解决Jacobi迭代并行化的文章,这个与都志辉 并行程序一书的例子有相似之处.链接http://w ...

  9. 万字拆解Gucci:率先迈向数字化的奢侈品,后来怎么样了?

    主笔:邹小困 研究员:匡浩,白婷丹 出品:增长黑盒研究组 前言 大家好,我是邹小困. 增长黑盒关注过不少快消新品牌,而今天想来聊一聊一个百年奢侈品--Gucci.正巧,2021年是 Gucci诞生10 ...

最新文章

  1. TensorFlow王位不保?ICLR投稿论文PyTorch出镜率快要反超了
  2. ASP.NET MVC4中调用WEB API的四个方法
  3. python常用包下载_Python及其常用模块库下载及安装
  4. Ajax跨域问题的两种解决方法
  5. 2016012086+杨岚青+散列函数应用及安全性
  6. matlab验证对称三相电路,不对称三相电路中,中线的电流为()。 A.0 B. C. D....
  7. mysql 5.7.15 union order by 子查询排序不生效
  8. 营销大数据分析 关键技术_营销分析的3个最关键技能
  9. 如何用Apache POI操作Excel文件-----如何对一个单元格加注解?
  10. w ndows7安不上HP1020,惠普1020打印机驱动程序
  11. 电子设计大赛音频信号分析仪
  12. 魔兽世界 圣骑士唯一的远程武器任务
  13. 四大主流新闻App竞品分析
  14. 无法为立即文档创建临时文件: 设备上没有空间(centos root 目录爆满)
  15. 局域网内Linux下开启ftp服务的“曲折路”和命令复习
  16. Dell服务器型号的详解
  17. zip格式压缩文件并打包下载
  18. Python+Django电影推荐系统搭建
  19. AcWing 217. 绿豆蛙的归宿(期望dp)
  20. tomorrow - 明天

热门文章

  1. Linux+Nginx+Apache+Atlas+Mysql+Php+Redis 分部式部署详细版
  2. Android APP 引导页实现-第一次应用进入时加载
  3. DTD -- XML验证
  4. 1.8-samba 部署和优化-2
  5. 你真的会用storyboard开发吗?
  6. 2011-09-07 00:16 ubuntu 如何修改当前用户名
  7. mysqldump死住(实际是导致mysqld crash)
  8. 将表格转换成纯html,HTML table表格转换为Markdown table表格
  9. 核心频率个加速频率_流处理器、核心频率、 位宽……这些显卡参数你知道吗?—— 电脑硬件科普篇(八)...
  10. ups计算软件_ups不间断电源系统分类及作用