- 博客(16)
- 资源 (3)
- 收藏
- 关注
原创 以提高缓存命中率为基础的矩阵相乘算法
实现以提高缓存命中率为基础的矩阵相乘算法,矩阵转置,方阵转置。将数学函数封装为动态链接共享库,以测试程序调用。没测试,待补充。
2022-07-18 18:02:00
347
原创 Fortran代码C化或Fortran与C/C++混编过程中矩阵转置的实现
这个过程中的主要问题为Fortran数据存储为列优先,C/C++数据存储为行优先。Fortran从文件中读取数据存储到Fortran_A(nx, ny),在C/C++从文件中读取数据存储到指针C_A指向的内存空间,两者数据在内存中的存储顺序一致,但是默认该矩阵的维度为(ny, nx)。 以转置后的矩阵C_AT为基础,按内存地址递增的顺序填充矩阵C_AT。这样只需要把关注点放在待转置矩阵C_A上,以列优先的方式遍历矩阵C_A[ny, nx],并获取对应的数据点填充到C_AT中。RESULT
2022-07-14 12:42:27
801
原创 Fortran内置函数sum()在real*4溢出情况下的表现
(1)变量前缀为‘fortran’表示在Fortran中进行求和操作,且当后缀不为‘DFC’时表示为使用Fortran读取文件,数据类型为real*4;(2)变量后缀为‘DFC’(data from c)表示为数据来自于C程序,数据类型为real*4;(3)变量前缀为‘c’表示为使用C读取文件,数据类型为float,在C中进行求和操作;(4)文件相同,读取位置相同,读取数据大小相同,共计1440万个float类型数据;(4)数据最小值为1649.254272,最大值为12704.22168。
2022-06-24 11:47:31
1192
原创 Fortran内置函数、blas库、DCU矩阵相乘结果精度对比与耗时统计
本文章对六种矩阵相乘算法进行了结果精度对比与耗时统计分析。六种矩阵相乘分别为Fortran的内置函数matmul(),blas库的dgemm(),Fortran编写的常规矩阵相乘,DCU并行矩阵相乘,C编写的常规矩阵相乘,C编写的优化后矩阵相乘。DCU使用1000个线程做矩阵乘法,每个线程计算最终矩阵的一行结果。C编写的优化后的矩阵相乘为通过提高缓存命中率从而提高效率。 矩阵为随机生成的1000*1000规模的双精度浮点数,矩阵乘法的规则为矩阵A乘矩阵A的转置,但是矩阵A与矩阵A的转置存储在内
2022-06-22 15:40:36
2239
原创 C/C++在Linux上的多线程
在集群上每个计算节点有三四十个核心,往往使用MPI对任务进行并行计算,计算资源平均分布在多个节点的多个CPU核心上。为了充分利用计算节点剩余的核心,可以将任务再次细分,在MPI多进程的基础上每个进程使用多线程调用空闲核心完成计算。...
2022-06-07 15:14:41
337
原创 马赛克(Mosaic)拼图
将样本图片填充到目标图片中,使得目标图片整体上体现原图特征,细节上由你选择的样本图像决定。比如用你喜欢的照片拼出一张你女朋友的照片。
2021-12-22 11:39:37
1102
原创 Web项目框架设计-原生态Java
目录数据库操作封装-DBUtils服务层封装-BaseService-JdbcService-PstmMetaData控制层封装-BaseController-ControllerSupport-BaseServlet工具类-Tools数据库操作封装-DBUtilsDBoptions.properties↓DRIVER=com.mysql.jdbc.DriverURL=jdbc:mysql://localhost:3306/comicexam?useUnicode&characterEnco
2020-05-20 22:25:55
409
Framework.zip
2020-05-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人