🏠

高性能数值引擎攻关一期工程

软件开发 · 安世亚太 · 2022-09 ~ 2023-03 · 共 73 条
📌 独自完成适配器子课题;获 2023 超人奖

2022Q3 7 条

weekly 7
2022-09-23
整理SuperLU与MUMPS接口参数并形成对比文档
整理SuperLU和MUMPS库的接口参数及其含义、数据结构(各库基于C或FORTRAN编写,接口数据结构基本为POD类型),形成接口对比的文档;
SuperLUMUMPS接口对比数据结构POD2022-09_2026-09/zhoubao/2022-09-23_第38周工作周报-求解器软件工程组.md L222
2022-09-23
自编算例运行SuperLU与MUMPS熟悉接口调用
自己编写算例分别运行SuperLU和MUMPS,熟悉各库接口调用方法
SuperLUMUMPS算例2022-09_2026-09/zhoubao/2022-09-23_第38周工作周报-求解器软件工程组.md L220
2022-09-30
整理MUMPS接口参数与数据结构文档
阅读MUMPS官方技术文档,整理各接口参数机器含义、数据结构,整理成文档(以飞书脑图的形式)
MUMPS技术文档接口参数数据结构飞书脑图2022-09_2026-09/zhoubao/2022-09-30_第39周工作周报-求解器软件工程组.md L224
2022-09-30
整理SuperLU接口参数与数据结构文档
阅读SuperLU官方技术文档,整理SuperLU库的接口参数及其含义、数据结构;
SuperLU技术文档接口参数数据结构2022-09_2026-09/zhoubao/2022-09-30_第39周工作周报-求解器软件工程组.md L232
2022-09-30
编写MUMPS算例并熟悉接口调用
编写算例调用MUMPS,熟悉接口调用方法;
MUMPS算例接口调用2022-09_2026-09/zhoubao/2022-09-30_第39周工作周报-求解器软件工程组.md L226
2022-09-30
编写SuperLU算例并熟悉接口调用
编写算例调用SuperLU,熟悉接口调用方法;
SuperLU算例接口调用2022-09_2026-09/zhoubao/2022-09-30_第39周工作周报-求解器软件工程组.md L234
2022-09-30
设计adapter架构原型
adapter架构原型设计(暂定写成不同库对各自参数进行注册,并提供不同库之间相同含义参数的转化实现。拟先实现MUMPS和SuperLU之间的转换,并以此为使用范例);
adapter架构设计参数注册参数转化MUMPSSuperLU2022-09_2026-09/zhoubao/2022-09-30_第39周工作周报-求解器软件工程组.md L236

2022Q4 30 条

weekly 30
2022-10-14
梳理MUMPS接口所有参数意义
MUMPS接口所有参数意义梳理;
MUMPS参数梳理2022-09_2026-09/zhoubao/2022-10-14_第41周工作周报-求解器软件工程组.md L228
2022-10-14
梳理SuperLU与Pardiso主要计算流程
SuperLU、Pardiso主要计算流程梳理;
SuperLUPardiso计算流程2022-09_2026-09/zhoubao/2022-10-14_第41周工作周报-求解器软件工程组.md L230
2022-10-21
完成COO格式非零元素排序及两种实现
完成COO格式非零元素排序,使用非零元素行索引对行索引数组、列索引数组和非零元素值数组同步进行排序;包括转成CSR所需的“先按行排序再按列排序”和CSC所需的“先按列排序再按行排序”;分别实现用临时数组及对元素原位swap(InPlace)的形式实现;
COOCSRCSC稀疏矩阵排序InPlace2022-09_2026-09/zhoubao/2022-10-21_第42周工作周报-求解器软件工程组.md L230
2022-10-21
实现稀疏矩阵三种压缩格式任意转换
稀疏矩阵压缩格式,以COO为中间转换格式,实现COO->CSR、COO->CSC、CSR->COO和CSC->COO的格式转换,实现三种格式之间的任意转换(如后端求解器用了其他存储格式,只需实现新格式->COO和COO->新格式即可实现任意转换);
稀疏矩阵压缩格式COOCSRCSC格式转换2022-09_2026-09/zhoubao/2022-10-21_第42周工作周报-求解器软件工程组.md L234
2022-10-21
梳理重构线性方程组计算库适配器开发内容
线性方程组计算库适配器开发的主要内容梳理,(初步版本)重构、补充、细化;
线性方程组适配器重构文档梳理2022-09_2026-09/zhoubao/2022-10-21_第42周工作周报-求解器软件工程组.md L228
2022-10-28
搭建适配器项目CI流程实现自动测试
适配器项目CI流程学习搭建(实现自动测试);
CI自动测试适配器2022-09_2026-09/zhoubao/2022-10-28_第43周工作周报-求解器软件工程组.md L224
2022-11-04
完成适配器工厂,支持自动注册与调用
适配器工厂完成,编译期自动注册适配器,运行期按前端+后端的名称字符串调用对应适配器;
适配器工厂模式自动注册2022-09_2026-09/zhoubao/2022-11-04_第44周工作周报-求解器软件工程组.md L290
2022-11-04
适配器工厂与stub连接并单元测试
适配器工厂与stub连接、单元测试;
适配器stub单元测试2022-09_2026-09/zhoubao/2022-11-04_第44周工作周报-求解器软件工程组.md L296
2022-11-04
重构stub架构,运行期确定适配器指向
stub架构重构,实现运行期确定指向哪一个适配器;
stub架构重构2022-09_2026-09/zhoubao/2022-11-04_第44周工作周报-求解器软件工程组.md L298
2022-11-11
完成适配器工厂与stub连接及单元测试
适配器工厂与stub连接、单元测试;
适配器工厂stub单元测试2022-09_2026-09/zhoubao/2022-11-11_第45周工作周报-求解器软件工程组.md L220
2022-11-11
调研PETSc调用MUMPS、Pardiso等第三方库
继续调研PETSc如何调用MUMPS、pardiso等第三方库;
PETScMUMPSPardiso第三方库2022-09_2026-09/zhoubao/2022-11-11_第45周工作周报-求解器软件工程组.md L230
2022-11-11
重构stub架构,确定Adapter manager+工厂模式方案
stub架构重构,(最后未采用该方法,stub只用作方便测试,最后还是使用Adapter manager+工厂模式的方法实现运行期确定指向哪一个适配器);
stub架构重构Adapter manager工厂模式2022-09_2026-09/zhoubao/2022-11-11_第45周工作周报-求解器软件工程组.md L222
2022-11-18
编写适配器文档争取初期版本
编写适配器文档,争取交付初期版本;
适配器文档2022-09_2026-09/zhoubao/2022-11-18_第46周工作周报-求解器软件工程组.md L250
2022-11-18
调研PETSc调用MUMPS接口
调研PETSc调用MUMPS的接口;
PETScMUMPS接口调研2022-09_2026-09/zhoubao/2022-11-18_第46周工作周报-求解器软件工程组.md L242
2022-11-18
适配器容器改用裸指针避免硬拷贝
适配器类内部使用的容器全部换成裸指针,尽量避免中间数据和硬拷贝;
适配器裸指针容器硬拷贝2022-09_2026-09/zhoubao/2022-11-18_第46周工作周报-求解器软件工程组.md L236
2022-11-25
各适配器封装为动态库并自动注册
将各适配器分别封装为不同的动态库,并在每个动态库加载时分别自动注册
适配器动态库自动注册2022-09_2026-09/zhoubao/2022-11-25_第47周工作周报-求解器软件工程组.md L226
2022-11-25
完善mat formater辅助类,增加dense/sparse格式转换
完善mat formater辅助类,增加dense和sparse格式转换
mat formaterdensesparse格式转换2022-09_2026-09/zhoubao/2022-11-25_第47周工作周报-求解器软件工程组.md L222
2022-11-25
编写适配器文档,完成50%
编写适配器文档(50%)(原定本周完成)
文档📊 50%2022-09_2026-09/zhoubao/2022-11-25_第47周工作周报-求解器软件工程组.md L230
2022-11-25
适配器架构重构:前后端接口分离
适配器架构重构,将前端、后端接口分离,具体类继承实现一个前端和一个后端接口即可用作适配
适配器架构重构接口分离2022-09_2026-09/zhoubao/2022-11-25_第47周工作周报-求解器软件工程组.md L224
2022-11-30
完成适配器文档初版
完成适配器文档;(初版完成)
适配器文档2022-09_2026-09/zhoubao/2022-11-30_第48周工作周报-求解器软件工程组.md L216
2022-11-30
输出各库输入参数结构体并打印参数数学意义
各库输入参数结构体的输出,打印各参数的数学意义(MUMPS初步完成,控制参数数组未展开打印);
MUMPS输入参数结构体适配器2022-09_2026-09/zhoubao/2022-11-30_第48周工作周报-求解器软件工程组.md L218
2022-11-30
适配器库静态加载改为动态加载
适配器库静态加载改为动态加载;
适配器动态加载静态加载2022-09_2026-09/zhoubao/2022-11-30_第48周工作周报-求解器软件工程组.md L224
2022-12-09
编写外部调用 MUMPS 转为调用适配器的案例
外部调用MUMPS转到外部调用适配器的案例编写;(周五会议)
MUMPS适配器案例编写2022-09_2026-09/zhoubao/2022-12-09_第49周工作周报-求解器软件工程组.md L186
2022-12-09
适配器初版交付内部讨论并确认
初版交付内部讨论、确认;
适配器交付2022-09_2026-09/zhoubao/2022-12-09_第49周工作周报-求解器软件工程组.md L179
2022-12-09
适配器库改为动态加载并拆出独立 manager 库
适配器库静态加载改为动态加载,修改构建关系,将manager本身提出单独成库,阻止动态库动态加载时形成多个单例的问题;
适配器动态加载构建关系单例manager2022-09_2026-09/zhoubao/2022-12-09_第49周工作周报-求解器软件工程组.md L178
2022-12-09
适配器文档重构完成
适配器文档重构完成;
适配器文档重构2022-09_2026-09/zhoubao/2022-12-09_第49周工作周报-求解器软件工程组.md L177
2022-12-16
编写外部调用适配器案例
4. 外部调用适配器案例编写;
适配器外部调用案例2022-09_2026-09/zhoubao/2022-12-16_第50周工作周报-求解器软件工程组.md L179
2022-12-23
SuperLU适配器前端接口部分
SuperLU适配器前端接口部分;
SuperLU适配器前端接口2022-09_2026-09/zhoubao/2022-12-23_第51周工作周报-求解器软件工程组.md L191
2022-12-23
SuperLU适配器框架开发完成
SuperLU适配器框架开发完成;
SuperLU适配器框架2022-09_2026-09/zhoubao/2022-12-23_第51周工作周报-求解器软件工程组.md L197
2022-12-30
完成SuperLU适配器框架开发
4. SuperLU适配器框架开发完成;(用户接口和前端接口完成)
SuperLU适配器用户接口前端接口2022-09_2026-09/zhoubao/2022-12-30_第52周工作周报-求解器软件工程组.md L204

2023Q1 30 条

weekly 30
2023-01-06
增加stand alone构建选项支持动态库替换
增加构建选项-DBUILD_STAND_ALONE,用于控制是否使用stand alone构建方法,该构建方式与原构建方式不同的是,该构建方法将每一个具体适配器和框架打包成一个动态库,不再提供桩函数、自动注册、动态加载等功能,但可以直接替换原前端求解器库的动态库,不需要重新编译、链接
stand alone动态库桩函数自动注册动态加载前端求解器库2022-09_2026-09/zhoubao/2023-01-06_第1周工作周报-求解器软件工程组.md L227
2023-01-06
增加构建选项控制适配器矩阵数组惯用法
增加构建选项-DUS_PERA_FORTRAN_IDOM,用户可以在不改变源代码、重新编译的情况下针对不同场景控制构建的适配器的矩阵数组是遵循Fortran惯用法(从1开始)还是C惯用法
FortranC构建选项适配器矩阵数组2022-09_2026-09/zhoubao/2023-01-06_第1周工作周报-求解器软件工程组.md L226
2023-01-06
编写MUMPS求解库动态部署案例并加入CI
MUMPS求解库动态部署案例编写,并加入gitlab-ci
MUMPS动态部署gitlab-ci2022-09_2026-09/zhoubao/2023-01-06_第1周工作周报-求解器软件工程组.md L228
2023-01-13
完成适配器 openEuler 2209 环境编译部署测试
适配器不同平台编译部署测试(nce-solver只提供了openeuler下的linux环境求解器动态库,经实验centos7.6链接失败,win无法部署,只完成了openeular2209环境测试);
适配器编译部署openEulercentos7.6win2022-09_2026-09/zhoubao/2023-01-13_第2周工作周报-求解器软件工程组.md L222
2023-01-13
完成适配器框架修改、链接及算例测试
根据华为nce-solver对适配器框架修改、完成链接和算例测试;
华为nce-solver适配器框架链接算例测试2022-09_2026-09/zhoubao/2023-01-13_第2周工作周报-求解器软件工程组.md L220
2023-01-13
编写适配器框架交付文档(测试报告与案例)
适配器框架交付相关文档(测试报告编写、测试案例整理);
适配器框架测试报告测试案例文档2022-09_2026-09/zhoubao/2023-01-13_第2周工作周报-求解器软件工程组.md L221
2023-01-30
为mumps->huawei适配器增加非原位修改选项
mumps->huawei适配器增加非原位修改的选项,不再对原数据进行更改,使用中间数据,解决多次迭代求解产生的数组下标多次更改问题;
mumpshuawei适配器非原位修改中间数据2022-09_2026-09/zhoubao/2023-01-30_第5周工作周报-求解器软件工程组.md L202
2023-01-30
修复mtx数据读取模块与适配器对接bug
mtx数据读取模块和适配器对接bug修复;
mtx数据读取适配器bug修复2022-09_2026-09/zhoubao/2023-01-30_第5周工作周报-求解器软件工程组.md L195
2023-01-30
完成pardiso->huawei适配器功能实现及测试算例
完成pardiso->huawei适配器功能实现,编写测试算例;
pardisohuawei适配器测试算例2022-09_2026-09/zhoubao/2023-01-30_第5周工作周报-求解器软件工程组.md L203
2023-01-30
调整pardiso适配器框架,流程跑通
pardiso适配器框架调整,pardiso->huawei适配器类(流程跑通,总进度30%);
pardisohuawei适配器📊 总进度30%2022-09_2026-09/zhoubao/2023-01-30_第5周工作周报-求解器软件工程组.md L197
2023-02-10
完成 mumps->huawei 适配器问题反馈响应与多项改进
1. mumps->huawei适配器不再修改原用户数据,而是产生一份中间数据,避免迭代求解时原数据被修改产生的问题;
mumpshuawei适配器nce-solverc++11log-level2022-09_2026-09/zhoubao/2023-02-10_第6周工作周报-求解器软件工程组.md L212-217
2023-02-10
完成 pardiso->huawei 适配器功能
2. 完成pardiso->huawei适配器功能;
pardisohuawei适配器2022-09_2026-09/zhoubao/2023-02-10_第6周工作周报-求解器软件工程组.md L218
2023-02-10
编写和通过 pardiso->huawei 适配器对称非正定算例测试
3. 编写和通过pardiso->huawei适配器对称非正定算例测试;
pardisohuawei适配器对称非正定算例测试2022-09_2026-09/zhoubao/2023-02-10_第6周工作周报-求解器软件工程组.md L219
2023-02-10
重构适配器框架,增加健壮性
4. 重构适配器框架,增加健壮性(去除public成员、friend类、不使用裸指针管理资源);
适配器框架重构健壮性C++2022-09_2026-09/zhoubao/2023-02-10_第6周工作周报-求解器软件工程组.md L220
2023-02-15
完成MKL Pardiso→华为适配器精度测试与代码交付
编写mkl pardiso->huawei适配器计算精度测试,读取mtx格式数据转为MKL Pardiso格式进行计算,并通过测试;
MKL Pardisohuawei适配器mtxOpenEular22.09📊 OpenEular22.092022-09_2026-09/zhoubao/2023-02-15_第7周工作周报-求解器软件工程组.md L221-223
2023-02-15
完成SuperLU→华为适配器功能实现、精度测试与报告
编写superlu->huawei适配器计算精度测试,读取mtx格式数据转为superlu格式进行计算,并通过测试;
SuperLUhuawei适配器mtx精度测试2022-09_2026-09/zhoubao/2023-02-15_第7周工作周报-求解器软件工程组.md L227-229
2023-02-24
superlu适配器函数功能实现完成50%
2. superlu适配器函数功能实现;(50%)(原计划本周完成)
SuperLU适配器📊 50%2022-09_2026-09/zhoubao/2023-02-24_第8周工作周报-求解器软件工程组.md L229
2023-02-24
编写superlu->huawei适配器计算精度测试算例
3. 编写superlu->huawei适配器计算精度测试算例;
SuperLUHuawei适配器精度测试2022-09_2026-09/zhoubao/2023-02-24_第8周工作周报-求解器软件工程组.md L230
2023-02-24
解决MKL Pardiso适配器多项问题并增强功能
1. Mkl pardiso适配器库后续问题解决; 1. 使用裸数组做类的静态成员变量导致的undefine symbol的问题解决; 2. 支持多列rhs计算而不只是原来的单列rhs计算,完成并编写算例通过; 3. 添加pardiso数据中,用iparm[34]参数控制数组是0 based还是1 based; 4. 对发布版本中log做调整,error和critical直接throw,其他不输出。loglevel可以通过配置文件进行控制以外,增加通过pardiso的msglvl参数进行控制; 5. 更新mkl pardiso适配器文档(接口文档);
MKL Pardiso适配器多列rhsiparm[34]logundefine symbol2022-09_2026-09/zhoubao/2023-02-24_第8周工作周报-求解器软件工程组.md L222-228
2023-03-03
处理mumps->nce-solver交付问题并修改测试报告
mumps->nce-solver交付问题的讨论和处理
mumpsnce-solver交付测试报告2022-09_2026-09/zhoubao/2023-03-03_第9周工作周报-求解器软件工程组.md L232-235
2023-03-03
完成superlu功能并通过精度测试
完成superlu功能,读取mtx格式数据转为superlu格式进行计算,通过精度测试
superlumtx格式精度测试2022-09_2026-09/zhoubao/2023-03-03_第9周工作周报-求解器软件工程组.md L229
2023-03-03
用双精度接口模拟单精度接口功能
用双精度接口模拟单精度接口的功能(nce求解器未提供单精度接口)
适配器nce求解器单精度双精度2022-09_2026-09/zhoubao/2023-03-03_第9周工作周报-求解器软件工程组.md L242
2023-03-03
编写superlu->huawei适配器测试报告文档
编写superlu->huawei适配器测试报告文档
superluhuawei适配器测试报告2022-09_2026-09/zhoubao/2023-03-03_第9周工作周报-求解器软件工程组.md L230
2023-03-10
三款适配器用双精度接口实现单精度接口功能
实现mumps、mklpardiso和superlu适配器中,用双精度接口(D接口和Z接口)实现单精度接口(S接口和C接口)的功能
适配器MUMPSMKL_PardisoSuperLU单精度接口单元测试2022-09_2026-09/zhoubao/2023-03-10_第10周工作周报-求解器软件工程组.md L254-255
2023-03-10
修复 mklpardiso 不同 phase 调用路径 bug
修复mklpardiso适配器不同phase的函数调用路径的bug,并添加mklpardiso不同phase、mumps不同jobs情况下的单元测试
适配器MKL_PardisoMUMPSphase单元测试bug修复2022-09_2026-09/zhoubao/2023-03-10_第10周工作周报-求解器软件工程组.md L257
2023-03-17
新版 nce 求解器与适配器库集成测试
新版nce求解器与适配器库集成测试;
nce求解器适配器库集成测试2022-09_2026-09/zhoubao/2023-03-17_第11周工作周报-求解器软件工程组.md L238
2023-03-17
适配器并行功能对接
并行功能对接适配器;
适配器并行功能nce-solver2022-09_2026-09/zhoubao/2023-03-17_第11周工作周报-求解器软件工程组.md L237
2023-03-24
处理单精度接口计算误差及测试报告
单精度接口计算误差问题,沟通、算例和测试报告修改;
适配器单精度接口测试报告2022-09_2026-09/zhoubao/2023-03-24_第12周工作周报-求解器软件工程组.md L221
2023-03-31
测试算例整理并输出修改
测试算例整理,输出修改;
测试算例2022-09_2026-09/zhoubao/2023-03-31_第13周工作周报-求解器软件工程组.md L183
2023-03-31
重点工程一期汇报PPT编写与讨论
重点工程一期汇报ppt编写、讨论;
适配器汇报材料2022-09_2026-09/zhoubao/2023-03-31_第13周工作周报-求解器软件工程组.md L182

2023Q2 3 条

weekly 3
2023-04-07
推进适配器后续问题解决与第三方测试沟通
2. 适配器后续问题解决:
适配器第三方测试2022-09_2026-09/zhoubao/2023-04-07_第14周工作周报-求解器软件工程组.md L186-188
2023-04-21
功能测试增加汇总表格并支持屏幕与文件输出
功能测试增加汇总表格,输出打印到屏幕和文件中;
功能测试汇总表格输出打印2022-09_2026-09/zhoubao/2023-04-21_第16周工作周报-求解器软件工程组.md L202
2023-04-21
按归档要求重构适配器代码结构、调整构建结构
代码结构按归档要求重新修改,调整构建结构;
适配器代码结构构建结构归档2022-09_2026-09/zhoubao/2023-04-21_第16周工作周报-求解器软件工程组.md L201

2024Q3 1 条

weekly 1
2024-07-19
mumps-dd/sol-109 分支 dmp 测试
mumps-dd/sol-109分支dmp测试;
MUMPSDMP分布式内存📊 sol-1092022-09_2026-09/zhoubao/2024-07-19_第29周工作周报-通用结构组.md L723

2025Q1 1 条

weekly 1
2025-03-07
mumps_solver 部分服务化并完成 Linux 调用测试
1. mumps_solver部分服务化(已通过 linux 调用测试)
MUMPS服务化dlopen-fPICGKlibmetis2022-09_2026-09/zhoubao/2025-03-07_2025年第10周工作周报-通用结构组.md L652-655

2025Q3 1 条

weekly 1
2025-07-11
mumps的gnu版本重编与问题排查
mumps的gnu版本重编、问题排查(目前只尝试了seq版本)
gnumumps重编2022-09_2026-09/zhoubao/2025-07-11_2025年第28周工作周报-通用结构组.md L640