Jacobi并行拆解
作者:桂。
时间: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并行拆解相关推荐
- Jacobi并行拆解【补充】
作者:桂. 时间:2018-04-24 22:04:52 链接:http://www.cnblogs.com/xingshansi/p/8934373.html 前言 本文为Jacobi并行拆解一文 ...
- 复数矩阵分解的拆解思路(矩阵求逆/特征值分解)
作者:桂. 时间:2017-10-26 07:11:02 链接:http://www.cnblogs.com/xingshansi/p/7735016.html 前言 主要记录特征值分解的硬件实现思 ...
- MIPS指令集处理器设计(支持64条汇编指令)
一.题目背景和意义 二.国内外研究现状 (略) 三.MIPS指令集处理器设计与实现 (一).MIPS指令集功能性梳理 1.MIPS指令集架构 (1).mips基础指令集格式总结 MIPS是(Micro ...
- Jacobi的GPU并行迭代 OpenACC
目录 1. 搭建OpenACC运行环境 1.1 安装CUDA11.1 1.2 配置CUDA环境 1.3 安装OpenACC 21.3 1.4 配置openACC环境 2. 程序执行 2.1 GPU上并 ...
- MPI求解Jacobi迭代的并行策略
二阶九点差分法 给定一个泊松方程如下, { − Δ u = f in Ω , u
- SVD分解的并行实现
在之前的文章中,我对SVD进行了大致的了解,它在互联网高端领域中有广泛的应用,至于它的一些详细应 用以后再进一步学习.现在主要的问题是如何有效地实现SVD分解,接下来我会先用两种方法来实现SVD分 解 ...
- 市面上常见的TCP/IP以太网一卡通设备硬件产品电路拆解分析
从业十多年了,经常听到业务员抱怨单丢是因为别家产品与我们相同,当问到为什么客户选择别家产品时,业务员一般也总是会说:"都是一样的产品,别家的便宜几十块嘛.",当问及怎么会是一样的呢 ...
- MPI程序例子 test_8_1_2.c -- 对等模式的MPI程序,Jacobi迭代 (MPI_Send、MPI_Recv)
NOTE: 这里首先需要弄明白 Jacobi迭代是做什么的,怎么操作. 网上找到的一篇讲解使用 MPI解决Jacobi迭代并行化的文章,这个与都志辉 并行程序一书的例子有相似之处.链接http://w ...
- 万字拆解Gucci:率先迈向数字化的奢侈品,后来怎么样了?
主笔:邹小困 研究员:匡浩,白婷丹 出品:增长黑盒研究组 前言 大家好,我是邹小困. 增长黑盒关注过不少快消新品牌,而今天想来聊一聊一个百年奢侈品--Gucci.正巧,2021年是 Gucci诞生10 ...
最新文章
- TensorFlow王位不保?ICLR投稿论文PyTorch出镜率快要反超了
- ASP.NET MVC4中调用WEB API的四个方法
- python常用包下载_Python及其常用模块库下载及安装
- Ajax跨域问题的两种解决方法
- 2016012086+杨岚青+散列函数应用及安全性
- matlab验证对称三相电路,不对称三相电路中,中线的电流为()。 A.0 B. C. D....
- mysql 5.7.15 union order by 子查询排序不生效
- 营销大数据分析 关键技术_营销分析的3个最关键技能
- 如何用Apache POI操作Excel文件-----如何对一个单元格加注解?
- w ndows7安不上HP1020,惠普1020打印机驱动程序
- 电子设计大赛音频信号分析仪
- 魔兽世界 圣骑士唯一的远程武器任务
- 四大主流新闻App竞品分析
- 无法为立即文档创建临时文件: 设备上没有空间(centos root 目录爆满)
- 局域网内Linux下开启ftp服务的“曲折路”和命令复习
- Dell服务器型号的详解
- zip格式压缩文件并打包下载
- Python+Django电影推荐系统搭建
- AcWing 217. 绿豆蛙的归宿(期望dp)
- tomorrow - 明天
热门文章
- Linux+Nginx+Apache+Atlas+Mysql+Php+Redis 分部式部署详细版
- Android APP 引导页实现-第一次应用进入时加载
- DTD -- XML验证
- 1.8-samba 部署和优化-2
- 你真的会用storyboard开发吗?
- 2011-09-07 00:16 ubuntu 如何修改当前用户名
- mysqldump死住(实际是导致mysqld crash)
- 将表格转换成纯html,HTML table表格转换为Markdown table表格
- 核心频率个加速频率_流处理器、核心频率、 位宽……这些显卡参数你知道吗?—— 电脑硬件科普篇(八)...
- ups计算软件_ups不间断电源系统分类及作用