SolverChallenge竞赛是解法器快速算法及应用研讨会(SOLVER会议)的一项特色活动,由SOLVER会议组委会主办,每年举行一次。竞赛针对实际应用中抽取出来的线性代数问题,要求参赛队伍在一定约束条件下通过算法设计与性能调优等手段对这些系统进行数值求解,并基于不同标准从多个维度对所获结果进行评价。第六届竞赛(SolverChallenge26)将与第九届解法器快速算法及应用研讨会(SOLVER26,广东深圳)同期启动,欢迎解法器领域的同行及研究生报名参赛。
线性代数方程组 Ax=b 是科学与工程计算领域面临的共性问题,求解该类方程的解法器已成为很多应用软件的性能瓶颈。当前,国产高性能计算机已进入百亿亿次(E级)计算时代。这些国际领先的超级计算机为我国科学与工程计算应用迈进超大规模计算时代、实现更高精细的数值模拟成为可能。然而,超大规模计算给解法器算法设计与性能优化带来巨大挑战。一方面,超大规模计算必然是求解越来越复杂的实际应用问题,更加精细的物理建模蕴含着越来越复杂的应用特征(如:多时空尺度、多物理耦合、多介质、复杂流动、强非线性强间断、长时间积分等),从而导致现有解法器算法的计算复杂度急剧增长。另一方面,随着计算机硬件性能的提升,超级计算机呈现“多级嵌套海量并行、异构众核加速”的复杂体系结构特征,导致解法器算法的实现效率急剧下降。这种“应用与机器”的双重复杂性导致解法器越来越成为实际数值模拟应用的性能瓶颈,如何设计能同时匹配实际应用特征和机器体系结构特征的快速算法与性能优化技术是当前亟待解决的关键问题。
SolverChallenge竞赛瞄准我国重要行业应用中的解法器瓶颈问题,赛题源于实际应用的需求,并根据每年的需求和优化情况持续更新。一方面,希望通过检验参赛队伍的算法与软件对这些问题的适应性,从中筛选出合适的算法及解法器策略,为应用提供新的思路与解决途径,提升我国重要行业应用中自主软件的解法器计算能力。另一方面,希望通过实际问题的牵引,吸引更多科研人员开展应用驱动的解法器算法创新与性能优化研究,同时培养具有交叉学科背景的优秀青年研究人员和研究生。
竞赛组委会提供10套来源于不同应用领域的线性系统(每套线性系统包括矩阵A和右端向量b、存储格式的描述、求解约束条件等),参赛选手针对这10套系统进行求解,不限制求解方法(即迭代法、直接法或混合方法均可),也不限制解法器软件包的来源。竞赛网站将提供程序中输入、输出与计时部分,并开放接口供参赛选手提交自己的执行代码(若是闭源的,则提交链接文件)。
硬件环境:竞赛指定硬件作为程序性能的测试平台,参赛选手有权使用竞赛测试平台,但使用时间将被限制,在使用时间内参赛选手可以配置环境与测试程序。在竞赛提供的平台测出的成绩会作为参赛选手的最终成绩。
指定硬件包括:
1. 商用 CPU(Intel Xeon Platinum 8488C, 2 路共 96 核,频率 2.4 GHz, 内存 512 GB DDR5);
2. 国产 CPU(LX2,2 路共 608 核,频率 2.0 GHz,内存 1024 GB DDR5 + 64GB HBM);
3. 国产 GPU(2 张海光 BW1000 DCU, 频率 1.5 GHz, 每张 64GB 显存; 32 核海光 C86 CPU, 频率 2.4 GHz;内存 128GB DDR5)。
本次比赛提供的超算环境仅限使用单个节点。
软件环境:准许使用任何软件包参与竞赛,但是在评分时会考虑所使用软件包的自主性和创新性。为方便参赛选手快速搭建程序,请尽可能基于比赛参考代码进行开发,参考代码中包含输入、输出与计时部分的实现。
参赛队伍:竞赛面向本科生、研究生与博士后开放,采用自愿组合方式组成参赛队伍。每支队伍人数不超过3人,且应指定1-2名指导教师。
算法设计实现涉及到的技术栈:包含采用的硬件、系统环境、软件;
算法详细内容:包含采用的算法、参数;
总体思路:包含问题的简要分析、求解策略;
结果分析(注明使用内存的情况);
遇到的问题。
求解速度(到解墙上时间):评分标准同时考虑求解的线性系统个数与性能。每个系统满分10分,能正确解出且性能最优者得满分,其他选手的成绩依次顺延,未能解出者不得分。所有10组系统得分累加得到总成绩。此外,为让各队伍积极参与,鼓励大家设计创新的思路,只要保证能解出正确结果,会给予基准分。
评分公式:在赛题不特殊说明下,分数 =(Tmin/Tself)* (10 - x) + x,其中 Tmin 为正确解出赛题的所有参赛队伍中用时最少的时间,Tself 为参赛队伍的时间,x 为基准分(默认基准分为1分)。
例如:求解某一系统时,假设基准分为x=1,排名第一的参赛小组用时120ms、排名第二的参赛小组用时240ms、排名第三的参赛小组用时800ms、排名第四的参赛小组用时10000ms甚至更多,排名第五的参赛小组未解出,则第一参赛小组得10分,第二参赛小组得5.5分,第三参赛小组得2.35分,第四参赛小组得1.108分,第五参赛小组得0分。
限制:确保求解出的解向量x满足相应的精度要求,每道题限制使用单节点计算资源。
竞赛专委会将根据参赛作品的创新性、完成度、文档质量、难度以及答辩表现等情况进行评奖。
基础奖项:按照求解速度与浮点运算次数得分,分别设特等奖(不超过1项),一等奖(不超过报名队伍总数的15%)、二等奖(不超过报名队伍总数的30%)、三等奖若干;
特别奖项:创新奖若干(在算法或性能优化方法方面有独特创新)、单系统奖共10项(对于某一个线性系统有独特贡献)、开源创新奖共10项(每个线性系统开源源码中第一,由队伍自愿报名)等;
企业特别奖:赞助厂商可根据自己的需求评选企业特别奖。
| 事项 | 时间 |
|---|---|
| 开启报名 | 9月1日 |
| 公布赛题 |
9月1日 |
| 报名截止 |
9月30日 |
| 开启程序提交 |
9月30日 |
| 关闭程序提交 |
10月30日 |
| 入围名单公布 |
11月10日 |
| 在SOLVER26会议上进行答辩、颁奖 |
11月20日-23日 |
百度网盘:下载链接 提取码: ni6w
端到端时间可分为如下3部分:
1. 分析
2. 准备
3. 求解
矩阵和向量的读入、格式转换、分发至多进程、矩阵坐标排序,以及 CPU 与 GPU 之间的数据传输,均不列入统计时间。
直接法和迭代法对于上述3步的定义略有不同。
直接法:
1. 分析:利用矩阵结构信息(即不依赖矩阵数值),做解法器预处理,包括图分析、图优化、预开辟空间、节点优化编号等操作,参考intel pardiso的phase=11(注意,pardiso phase=11可以传入矩阵的值做一定的处理,本次比赛不允许)。
2. 准备:利用矩阵数值信息做数值分解,参考intel pardiso phase=22。
3. 求解:输入右端向量b,得到解向量x,参考intel pardiso phase=33。
迭代法:
1. 分析:利用矩阵结构信息(即不依赖矩阵数值),做解法器预处理,包括预条件子构建、多重网格构建等。
2. 准备:利用矩阵数值信息做数值准备,包括预条件子数值准备,多重网格数值准备等。
3. 求解:输入右端向量b,得到解向量x。
注:
若将直接法作为预条件子用在迭代法中,则直接法部分参考“直接法”的说明计入迭代法三项相应时间中。
1、不同题目对于内存、收敛准则和求解右端项个数的要求不同,请选手注意。
2、关于矩阵说明:
为方便不同进程数下快速读取文件,本次比赛矩阵与右端向量统一采用 PETSc 二进制格式存储。
矩阵文件依次存储:MAT_FILE_CLASSID(1211216)、行数 m、列数 n、非零元数 nnz、每行非零元个数(m 个 32 位整数)、列下标(nnz 个 32 位整数,从 0 开始)、非零元数值(nnz 个 double,与列下标一一对应)。
右端向量文件依次存储:VEC_FILE_CLASSID(1211214)、向量长度 n、向量数值(n 个 double)。
复型系统赛题(T6、T8、T10)的矩阵与向量数值为双精度复数,每个元素按实部、虚部两个 double 依次存储。
比赛参考代码中提供了读取二进制矩阵和右端项的代码。
3、组委会提供的所有硬件环境均已下载所有赛题,参赛选手请勿重复下载。
4、对于沿自 SolverChallenge25 的赛题,在对应赛题信息中提供了 SolverChallenge25 最优报告,即上届竞赛中该题成绩最优队伍的技术报告,内容包括其算法设计、性能优化方法及其实现效果,供参赛选手参考。
5、关于赛题的参考代码,请参见:比赛参考代码。
| 赛题名称 | SolverChallenge26_01 |
|---|---|
| 矩阵阶数 | 6,291,456 |
| 非零元数 | 52,133,888 |
| 应用领域 | 激光聚变 |
| 来源与背景描述 | PDE:辐射流体力学三维三温能量方程; 网格类型:结构网格; 网格规模:128×128×128; 离散格式:有限体积7点格式。 |
| MD5 | c0d0a33e199a7746b0d9ba62396a0e79 |
| 约束 | (1)||r||2 / ||b||2 < 1e-4, 内存要求 ≤ 9GB(CPU 和 GPU 内存均需满足); (2)||r||2 / ||b||2 < 1e-8, 内存要求 ≤ 9GB(CPU 和 GPU 内存均需满足)。 |
| 关注时间 |
端到端时间 |
| 分数说明 | 达到约束(1):基准分为1分,满分为5分; 达到约束(2):基准分为1分,满分为5分; 约束(1)和约束(2)分别计分,总分为两者累加。 |
| 赛题名称 | SolverChallenge26_02 |
|---|---|
| 矩阵阶数 | 19,637,808 |
| 非零元数 | 97,535,322 |
| 应用领域 | 复杂流动 |
| 来源与背景描述 | PDE:航空发动机燃烧室仿真三维压力方程; 网格类型:非结构网格; 离散格式:单元中心有限体积。 |
| MD5 | 05398264671f6acfc8160e057b1fb6b9 |
| 约束 | (1)||r||2 / ||b||2 < 1e-6; (2)||r||2 / ||b||2 < 1e-10; 内存要求:无。 |
| 关注时间 |
端到端时间 |
| 分数说明 | 达到约束(1):基准分为1分,满分为5分; 达到约束(2):基准分为1分,满分为5分; 约束(1)和约束(2)分别计分,总分为两者累加。 |
| SolverChallenge25最优报告 | 有理想有本领有担当队(百度网盘,提取码:w4z6) |
| 赛题名称 | SolverChallenge26_03 |
|---|---|
| 矩阵阶数 | 2,081,541 |
| 非零元数 | 71,033,481 |
| 应用领域 | 结构力学 |
| 来源与背景描述 |
PDE:航空发动机整机静力学仿真,接触力学线弹性方程;
离散格式:一阶节点有限元,每个节点定义三个自由(位移三个分量); 网格类型:非结构网格; 特点:带有复杂约束条件。 |
| MD5 | b97d1f5b31e207de7a8e4fe1f639f949 |
| 约束 | ||r||2 / ||b||2 < 1e-8; 内存要求:无。 |
| 关注时间 |
端到端时间 |
| 分数说明 | 基准分为1分,满分为10分 |
| SolverChallenge25最优报告 | 就很嗨队(百度网盘,提取码:5bep) |
| 赛题名称 | SolverChallenge26_04 |
|---|---|
| 矩阵阶数 | 12,582,822 |
| 非零元数 | 678,943,908 |
| 应用领域 | 结构力学 |
| 来源与背景描述 | PDE:三维线弹性方程; 网格类型:非结构网格; 离散格式:有限元。 |
| MD5 | 069b83d1ed0817b492ff59bdb70ff94d |
| 约束 | ||r||2 / ||b||2 < 1e-8; 内存要求:无; 初始x0为零向量。 |
| 关注时间 |
端到端时间 |
| 分数说明 | 基准分为1分,满分为10分 |
| SolverChallenge25最优报告 | 祺德隆东强队(百度网盘,提取码:5gb1) |
| 赛题名称 | SolverChallenge26_05 |
|---|---|
| 矩阵阶数 | 31,214,240 |
| 非零元数 | 1,786,704,832 |
| 应用领域 | 复杂流动 |
| 来源与背景描述 | PDE:复杂装备三维不可压NS方程; 网格类型:非结构网格; 网格规模:单元数7,803,560; 离散格式:有限体元离散; 自由度排序:速度-压力耦合求解,采用节点序(同一节点的三个速度分量和压力连续编号)。 |
| MD5 | 4ee6effefcc6a248a96b91519b45abbf |
| 约束 | ||r||2 / ||b||2 < 1e-8; 内存要求:无。 |
| 关注时间 |
端到端时间 |
| 分数说明 | 基准分为1分,满分为10分 |
| 赛题名称 | SolverChallenge26_06 |
|---|---|
| 矩阵阶数 | 1,765,074 |
| 非零元数 | 28,533,594 |
| 应用领域 | 电子学系统 |
| 来源与背景描述 |
PDE:滤波器电磁场仿真时谐麦克斯韦方程;
离散格式:一阶Nedelec有限元,每条边一个自由度; 特点:离散矩阵为复型系统。 |
| MD5 | 2c5d20456ecb6657a022ea9324a4e4ad |
| 约束 | ||r||2 / ||b||2 < 1e-8; 内存要求:无; 初始x0为零向量。 |
| 关注时间 |
端到端时间 |
| 分数说明 | 基准分为1分,满分为10分 |
| SolverChallenge25最优报告 | 有理想有本领有担当队(百度网盘,提取码:w4z6) |
| 赛题名称 | SolverChallenge26_07 |
|---|---|
| 矩阵阶数 | 34,500,003 |
| 非零元数 | 721,719,027 |
| 应用领域 | 碳封存 |
| 来源与背景描述 | PDE:多组分渗流方程; 离散格式:非结构网格,有限体积七点格式,每个单元自由度为3; 特点:自由度按单元节点排序,同一个节点的压力和各组分饱和度排在一起,压力排前。 |
| MD5 | 0bf100709a1dfbf4978ad2deae7a91a7 |
| 约束 | ||r||2 / ||b||2 < 1e-6; 内存要求:无; 初始x0为零向量。 |
| 关注时间 |
端到端时间 |
| 分数说明 | 基准分为1分,满分为10分 |
| 赛题名称 | SolverChallenge26_08 |
|---|---|
| 矩阵阶数 | 5,809,680 |
| 非零元数 | 194,348,610 |
| 应用领域 | 集成电路 |
| 来源与背景描述 |
电路谐波平衡分析;
电路工艺:T65; 特点:离散矩阵为复型系统。 |
| MD5 | cc64f7dd8e1c925098dbe433bdf0db96 |
| 约束 | ||r||max < 1e-8; 内存要求:无; 右端项:10个。 |
| 提示 |
请认真分析矩阵元素结构和数值分布,多为块矩阵;可以考虑迭代法,预处理子一般选为将每个块矩阵变成对角矩阵(或三对角、五对角等),或变成更小的对角块矩阵;也可以考虑直接法,注意填入元个数。该题块大小15x15,块类型:满阵/对角阵。 |
| 关注时间 |
端到端时间 |
| 分数说明 | 基准分为1分,满分为10分 |
| SolverChallenge25最优报告 | 祺德隆东强队(百度网盘,提取码:5gb1) |
| 赛题名称 | SolverChallenge26_09 |
|---|---|
| 矩阵阶数 | 9,683,038 |
| 非零元数 | 75,425,210 |
| 应用领域 | 集成电路 |
| 来源与背景描述 | 集成电路瞬态仿真方程; 电路类型:sram后仿电路; 电路工艺:16nm。 |
| MD5 | f984ba35f027a0c9f5b4eac7004c4b6c |
| 约束 | ||r||2 / ||b||2 < 1e-8; 内存要求 < 100GB(CPU 和 GPU 内存均需满足); 右端项:10个。 |
| 提示 |
一般用直接法 |
| 关注时间 |
端到端时间 |
| 分数说明 | 基准分为1分,满分为10分 |
| SolverChallenge25最优报告 | 不知道取什么名字队(百度网盘,提取码:gy4h) |
| 赛题名称 | SolverChallenge26_10 |
|---|---|
| 矩阵阶数 | 418,718 |
| 非零元数 | 921,708,586 |
| 应用领域 | 集成电路 |
| 来源与背景描述 |
射频电路谐波平衡仿真方程;
电路类型:VCO; 电路工艺:28nm; 特点:离散矩阵为复型系统。 |
| MD5 | 80aebbeeb0d22cd22ebb6af788191616 |
| 约束 | ||r||2 / ||b||2 < 1e-8; 内存要求:无; 右端项:10个。 |
| 提示 |
请认真分析矩阵元素结构和数值分布,多为块矩阵;可以考虑迭代法,预处理子一般选为将每个块矩阵变成对角矩阵(或三对角、五对角等),或变成更小的对角块矩阵;也可以考虑直接法,注意填入元个数。 |
| 关注时间 |
端到端时间 |
| 分数说明 | 基准分为1分,满分为10分 |
| SolverChallenge25最优报告 | 有理想有本领有担当队(百度网盘,提取码:w4z6) |
主办单位:解法器快速算法及应用研讨会组织委员会
承办单位:中国科学院深圳先进技术研究院
香港中文大学(深圳)
湖南韶峰应用数学研究院
深圳国际工业与应用数学中心
徐小文(北京应用物理与计算数学研究所)
张晨松(中国科学院数学与系统科学研究院)
舒 适(湘潭大学)
谭光明(中国科学院计算技术研究所)
刘伟峰(中国石油大学(北京))
薛 巍(清华大学)
崔 涛(中国科学院数学与系统科学研究院)
冯春生(湘潭大学)
胡少亮(中物院数值模拟软件中心)
刘伟峰(中国石油大学(北京))
舒 适(湘潭大学)
谭光明(中国科学院计算技术研究所)
谢和虎(中国科学院数学与系统科学研究院)
徐小文(北京应用物理与计算数学研究所)
薛 巍(清华大学)
岳孝强(湘潭大学)
张晨松(中国科学院数学与系统科学研究院)
周振亚(北京华大九天科技股份有限公司)
毛润彰: 19310195829 (电话) | mrz@nudt.edu.cn (邮箱)
李易达: 17742914916 (电话) | yida.li@student.cup.edu.cn (邮箱)