计算机科学
Computer Science
人工智能
Artificial Intelligence
计算与语言
Computation and Language
计算复杂性
Computational Complexity
许多多物理场模拟涉及在不同时间尺度上进化的过程,对高效耦合构成挑战。 一种使用最小时间尺度同步所有过程的幼稚方法将计算资源浪费在较慢的流程上,并且通常仅实现时间线性收敛。 Waveform迭代是一种有前途的数值技术,可以实现高阶,多率耦合,同时将耦合组件视为黑匣子。 然而,将这种方法应用于基于PDE的耦合模拟是微不足道的。 在本文中,我们将波形迭代集成到黑盒耦合库preCICE中,对其API进行了最小的修改。 我们详细介绍了此扩展如何与关键的preCICE功能交互,包括非匹配网格的数据映射,强耦合问题的准牛顿加速以及并行对等通信。 然后,我们展示了波形迭代可显著减少数值错误 - 通常按数量级。 这一进步极大地增强了preCICE,使其广泛的用户社区受益。
虽然加速计算已经改变了许多计算领域,但它对逻辑推理的影响,特别是布尔的可满足性(SAT),仍然有限。 最先进的SAT求解器在很大程度上依赖于固有的顺序冲突驱动的搜索算法,这些算法提供了强大的启发式,但限制了并行性的数量,否则可以实现更具可扩展性的SAT解决。 受神经网络训练的启发,我们将SAT问题制定为双线性矩阵乘法层,可以使用可微分的客观函数进行优化。 通过这种编码,我们结合了并行可微分优化和顺序搜索的优势,以加速混合GPU-CPU系统的SAT。 在这个系统中,GPU利用并行可微解来快速评估SAT子句,并使用梯度来随机探索解决方案空间并优化变量分配。 GPU 生成的有希望的部分赋值是在许多 CPU 线程上进行后处理的,这些线程利用冲突驱动的顺序搜索来进一步遍历解决方案子空间并识别完整的分配。 在 NVIDIA DGX GB200 节点上对混合求解器进行原型,与 SAT 竞赛中基于公共可满足基准问题的最先进的基于 CPU 的求解器相比,我们的求解器实现了高达 200 倍的运行时速度。
Durand-Kerner算法是一种广泛使用的迭代技术,用于同时找到多项式的所有根源。 然而,它的收敛在很大程度上取决于初始近似值的选择。 本文介绍了两种用于确定初始值的新方法:新绑定1和lambda最大绑定,旨在提高算法的稳定性和收敛速度。 进行了理论分析和数值实验,以评估这些边界的有效性。 lambda最大绑定始终如一地确保所有根都位于复杂的圆圈内,导致更快,更稳定的收敛。 比较结果表明,虽然New bound 1保证收敛,但它产生过大的半径。
SeQuant是一个开源库,用于在交换(标量)和非交换(操作器)环上符号代数的张量。 支持其大部分功能的关键创新是图形理论张量网络(TN)规范化器,可以比标准组理论对应器更快地处理对称的张量网络。 TN 规范化器用于常规的张量表达式的常规简化,用于优化 Wick's 定理的应用(用于将张量产品用于操作域的正法)以及用于操作导致数值评估的中间表示的操纵。 SeQuant的显着特征包括支持非协变张量网络(通常来自张量分解)和具有参数化模式模式的张量(自由度之间的依赖性自然被视为张量嵌套,“张量”在数据科学和现代量子模拟中产生的块状数据压缩)。 SeQuant通过包括编译器类组件来优化和直接解释外部数值张量代数框架,从而模糊了纯符号操作/代码生成和数值评估之间的界限。 SeQuant源代码可在https://github.com/ValeevGroup/SeQuant上找到。
我们考虑在混合整数双水平线性优化问题(MIBLP)的解决方案方法中改进方向的核心作用。 目前最先进的解决MIBLP的方法采用最初开发的用于解决混合整数线性优化问题的分支和切割框架。 这种方法依赖于两种子问题的神谕:用于检查候选人对领导者和追随者的决定是否可行,以及产生有效不平等所需的问题。 通常情况下,这两种类型的神谕是分开管理的,但在这项工作中,我们探索它们的紧密连接,并提出基于解决单一类型的子问题的解决方案框架:确定是否存在所谓的改进跟随者问题的可行方向。 这个子问题的解决产生了信息,这些信息既可以用来检查可行性,又可以产生强烈的有效不平等。 在之前的工作基础上,我们揭示了改善方向在实施跟随者最佳性条件方面的基本作用,并将以前已知的基于最优的放松层次结构扩展到混合整数设置,表明相关的放松可行区域与改善方向衍生的交叉切口相关的闭合完全一致。 使用开源求解器 MibS 的修改版本的实现的数字结果表明,这种方法可以产生实际的改进。
本文介绍了 evomap,一个用于动态映射的 Python 包。 映射方法被跨学科广泛使用,以可视化对象之间的关系作为空间表示,或映射。 然而,大多数现有的统计软件只支持静态映射,它在一个时间点捕获对象的关系,并且缺乏分析这些关系如何演变的工具。evomap通过实现最初由Matthe、Ringel和Skiera(2023)提出的动态映射框架EvoMap来填补这一空白,该框架改编了传统的静态映射方法进行动态分析。 该软件包支持多种映射技术,包括多维缩放(MDS),Sammon Mapping和t分布式随机邻居嵌入(t-SNE)的变体。 它还包括用于数据预处理、探索和结果评估的实用程序,为动态映射应用程序提供全面的工具包。 本文概述了静态和动态映射的基础,描述了 evomap 的架构和功能,并通过一个广泛的使用示例说明了其应用。
超大规模时代的科学计算需要提高计算能力,以解决各个领域的复杂问题。 随着异构计算架构的兴起,对供应商无关的需求,性能可移植性框架得到了强调。 像Kokkos这样的库对于使高性能计算应用程序能够以最小的代码更改在不同的硬件平台上高效执行至关重要。 朝这个方向,本文为两个具有代表性的科学计算应用提出了初步的时间到解决方案结果:N-body模拟和结构化网格模拟。 这两个应用程序都通过四个性能可移植性框架(Kokokos、OpenMP、RAJA和OCCA)使用分布式内存方法和硬件加速。 在 Polaris 超级计算机的单个节点上使用 4 个 NVIDIA A100 GPU 进行的实验显示,框架之间的性能差异很大。 OCCA为小规模验证问题展示了更快的执行时间,这可能是由于JIT编译,但它缺乏优化的还原算法可能会限制更大模拟的可扩展性,同时使用开箱即用的API。 OpenMP在结构化网格模拟中表现不佳,很可能是由于节点间数据同步和通信效率低下。 这些发现突出表明需要进一步优化,以最大限度地发挥每个框架的能力。 未来的工作将侧重于增强还原算法,数据通信,内存管理以及执行可扩展性研究,以及全面的统计分析,以评估和比较框架性能。
提出的是两项技术,旨在帮助简化数值建模过程中复杂血管几何的离散化。 第一种方法将多个软件工具集成到一个管道中,可以从分段医疗图像生成自适应各向异网格。 该管道可满足质量、保真度、平滑度和鲁棒性要求,同时为医疗图像到网格转换提供近乎实时的性能。 第二种方法近似于用户定义的尺寸函数,以实时生成高质量和保真度的自适应各向同质网格。 并行自适应各异性网状方法使用两个脑动脉瘤案例,并在普渡大学Anvil超级计算机上的单个多核节点内使用多达96个CPU核心,使用分层负载平衡模型(专为大型cc-NUMA共享内存架构设计),并包含优化的本地重新连接操作,其执行速度比以前研究的原始实现快三倍。 自适应各向同性法被证明可以在不到一分钟内生成大约5000万个元素的网格,而自适应各向异性方法被证明可以在大约5分钟内产生大约相同数量的元素。
我们介绍了一套R、Python、Julia和C++的软件包,可以有效地解决排序L-One惩罚估计(SLOPE)问题。 这些软件包具有高效的混合坐标下降算法,适合广义线性模型(GLM),并支持各种损失函数,包括高斯,二项式,Poisson和多项式逻辑回归。 我们的实现旨在快速、高效且灵活。 这些包支持各种数据结构(密集、稀疏和内存外矩阵),旨在有效地适应完整的 SLOPE 路径,并处理 SLOPE 模型的交叉验证,包括轻松的 SLOPE。 我们介绍了如何使用软件包和基准测试在真实和模拟数据上的性能示例,并表明我们的软件包在速度方面优于 SLOPE 的现有实现。
我们介绍了规范双凸规划(DBCP),这是一个用于指定和求解双凸优化问题的建模框架。双凸优化问题出现在各种应用中,包括机器学习、信号处理、计算科学和控制。在实践中求解双凸优化问题通常归结为基于交替凸搜索(ACS)的启发式方法,该方法迭代地优化一个变量块而保持另一个固定,使得产生的子问题是凸的并且可以高效求解。然而,为特定的双凸优化问题设计和实现ACS求解器通常需要用户付出大量努力,这可能既繁琐又容易出错。DBCP将规范凸规划的原则扩展到双凸问题,允许用户基于少量语法规则以自然的方式指定双凸优化问题。然后,生成的问题可以自动拆分并转换为凸子问题,随后生成并应用定制的ACS求解器。DBCP允许用户快速尝试不同的双凸问题表述,而无需凸优化专业知识。我们将DBCP实现为开源Python包dbcp,作为著名凸优化领域特定语言CVXPY的扩展。
在Cardano和Viète关于立方代数解决方案的工作的基础上,3×3矩阵的特征值的三角测量公式对于具有重复特征值的矩阵在数值上不稳定。 这项工作通过四个不变性( trace I_1 、离经叛道的不变性 J_2 和 J_3 以及判别 Δ)对真实、对角化 3×3 矩阵的特征值进行数值稳定、封闭式评估。 我们分析这些不变性的调节,并得出紧密的前进误差边界。 对于J_2,我们提出了一个算法并证明其准确性。 我们对所有不变值和由此产生的特征值公式进行基准测试,将观察到的远期误差与派生边界相关联。 特别是,我们表明,对于条件良好的特征基矩阵的特殊情况,新提出的算法在向前稳定范围内存在错误。 性能基准测试表明,对于具有挑战性的测试用例,建议的算法比高度优化的LAPACK库快约10倍,同时保持可比的准确性。
现代GPGPU提供了大量的算术吞吐量,但许多科学内核仍然受到内存带宽的限制。 特别是,反复加载预计算辅助数据会浪费丰富的计算资源,同时强调内存层次结构。 一个有希望的策略是用廉价的重新计算来取代内存流量,从而减轻带宽压力,并使应用程序能够更好地利用异构计算单元。 在这种策略的指导下,我们优化了高阶/光谱有限元方法(HOSFEM),这是一种广泛使用的解决PDE的方法。 它的性能很大程度上是由AxLocal决定的,AxLocal是一个无矩阵内核,用于元素-本地矩阵向量乘法。 在AxLocal中,几何因素主导内存访问,同时对计算贡献最小,从而产生带宽瓶颈,限制性能轴线。 为了应对这一挑战,我们提出了第一个实用的、低架空的对三线性和平行元素的几何因子的复计算。 这种重新配方减少了数据移动,提高了可实现的屋顶线,揭示了张量收缩的未开发优化潜力。 借助包括环路展开、Tensor Core 加速和恒定内存利用率在内的硬件感知技术,优化的内核达到了屋顶效率的 85%-100%。 与Nek系列中最先进的实现相比,他们在NVIDIA A100上提供了1.74x-4.10x的加速,在Hygon K100上提供了1.99x-3.78x的加速,从而在完整的HOSFEM基准测试中提高了1.12x-1.40x。 这些结果表明,将算法重制与硬件特定的调优相结合可以消除长期存在的瓶颈,并充分利用大规模高阶模拟的性能潜力。
将三维医疗图像转换为满足预测模拟和图像引导外科手术的质量和保真限制的3D网格仍然是一个关键问题。 呈现是一种称为CBC3D的图像到网格转换方法。 它首先通过生成高质量元素的自适应体中心立体(BCC)网格来区分分割图像。 接下来,四面体网格被转换成四面体,五面体和六面体的混合元素网格,以减少元素计数,同时保持质量。 最后,网格表面变形到相应的物理图像边界,提高了网格的保真度。 变形方案建立在ITK开源库的基础上,基于能源最小化的概念,依赖于多材料点的注册。 它使用非连接模式来隐式控制注册所需的提取特征点的数量,从而调整实现网格保真度和变形速度之间的权衡。 我们将CBC3D与来自工业界和学术界的四种广泛使用和最先进的本土图像到网格转换方法进行了比较。 结果表明,CBC3D网格(i)实现了高保真度,(ii)保持元素计数合理低,(iii)表现出良好的元素质量。
Ptychography已成为使用相干光源进行高分辨率、无损成像不可或缺的工具。 ptychographic数据的处理关键依赖于稳健,高效和灵活的计算重建软件。 我们介绍了Pty-Chi,这是一个建立在PyTorch上的开源ptychographic重建包,它通过自动区分方法统一了最先进的分析算法。 Pty-Chi提供一套全面的重建算法,同时支持先进的实验参数校正,如正交探头松弛和多片建模。 利用 PyTorch 作为计算后端,可确保与供应商无关的 GPU 加速、多设备并行化以及无缝访问现代优化器。 面向对象的模块化设计使Pty-Chi具有高度的可扩展性,使研究人员能够对新成像模型进行原型设计,集成机器学习方法,或在其核心组件之上构建全新的工作流程。 我们通过具有挑战性的案例研究证明了Pty-Chi的能力,这些案例研究涉及有限的连贯性,低重叠和扫描过程中的不稳定照明,这突出了其准确性,多功能性和可扩展性。 通过社区驱动的发展和开放的贡献,Pty-Chi提供了一个现代化的,可维护的平台,用于推进计算分形图,并在同步加速器设施内外实现创新的成像算法。
我们考虑多级低等级(MLR)矩阵,定义为矩阵总和的行和列排列,每个矩阵的块对角细化,所有块低等级以因子形式给出。 MLR矩阵扩展了低等级矩阵,但共享其许多属性,例如所需的总存储和矩阵向量乘法的复杂性。 我们解决了在 Frobenius 规范中通过 MLR 矩阵拟合给定矩阵时出现的三个问题。 第一个问题是因子拟合,我们调整MLR矩阵的因子。 第二个是等级分配,我们选择每个级别中的块的等级,但总排名具有给定值,保留MLR矩阵所需的总存储。 最后的问题是选择行和列的分层分区,以及等级和因素。 本文附有一个开源包,实现了建议的方法。
离散余烃、正负和哈特利变换等实值变换在经典计算中起着核心作用,补充了傅里叶从信号和图像处理到数据压缩的应用中的转换。 然而,它们的量子对应物并没有并行发展,也没有统一的框架来有效地在量子硬件上实现它们。 本文通过引入QRTlib来解决这一差距,QRTlib是一个用于快速和实际实现量子真实变换的库,包括各种类型的量子哈特利,余辛和正态变换。 我们开发新的算法和电路优化,使这些转换高效,适用于近期设备。 特别是,我们提出了基于单数(LCU)技术的线性组合的量子哈特利变换,与之前的方法相比,电路尺寸减少了四倍,并且改进了I型的量子正振变换,消除了大型多控操作。 我们还引入了电路级优化,包括两个互补和或树结构。 QRTlib在Qiskit中提供了这些量子真实变换的第一个完整实现。
我们提出了一种新的增强循环坐标下降(ECCD)框架,用于解决具有弹性净约束的广义线性模型,与现有最先进的方法相比,可减少训练时间。 我们重新设计了 CD 方法,围绕当前迭代执行 Taylor 扩展,以避免梯度计算中出现的非线性运算。 通过引入此近似值,我们能够展开CD方法中发生的向量复发,并将由此产生的计算重新制定为更高效的批次计算。 我们的经验表明,复发可以通过可调整数参数s展开,因此s > 1在不影响收敛的情况下产生性能改进,而s = 1产生原始CD方法。 ECCD的一个关键优点是它避免了块坐标下降所表现出的收敛延迟和数值不稳定。 最后,我们在 C++ 中实现我们提出的方法,使用 Eigen 来加速线性代数计算。 我们的方法与现有最先进的求解器的比较显示,对于不同基准数据集上的正则化路径变体,平均性能提高了3倍。 我们的实现可在https://github.com/Yixiao-Wang-Stats/ECCD上查阅。
凸集合图(GCS)图是一个图形,其中顶点与凸程序相关联,并通过额外的凸成本和约束将配对程序。 任何对普通加权图(例如,最短路径,旅行推销员和最小生成树问题)的任何优化问题都可以自然地推广到GCS,在组合和凸优化的界面上产生一类新的问题。 在本文中,我们引入了一个解决任何此类问题的统一方法。 从通过加权图对优化问题进行建模的整数线性程序开始,我们的方法自动生成相应的GCS问题的高效混合整数凸公式。 此公式基于同质化(透视)变换,由此产生的程序使用现成的分支和绑定的求解器解决到全局最优。 我们在GCSOPT中实现这个框架,GCSOPT是一个开源且易于使用的Python库,专为快速原型设计。 我们通过多个数值示例和比较来说明我们方法的多功能性和可扩展性。
Bootstrapping是一种强大的统计重新采样技术,用于估计器的采样分布。 然而,对于大型数据集或大量重新采样来说,其计算成本变得令人望而却步。 本文介绍了使用消息传递接口(MPI)的并行引导算法的理论分析和设计。 我们解决了两个关键挑战:分布式环境中的高通信开销和内存限制。 我们提出了两种新颖的策略:1)本地统计聚合,通过传输足够的统计数据而不是完整的重新采样的数据集来大大减少通信,2)同步伪随机数生成,当整个数据集不能存储在单个过程中时,可以实现分布式重新采样。 我们开发通信和计算复杂性的分析模型,将我们的方法与幼稚的基线方法进行比较。 我们的分析表明,建议的方法大大减少了通信量和内存使用量,促进了大规模系统上的可扩展并行引导。
我们提供了一个快速,可微分,GPU加速的优化方法,用于在包含平面反射器和直衍射边缘的环境中进行射线路径跟踪。 基于Fermat的原则,我们的方法将寻路问题重新制定为最小化总路径长度,从而实现现代GPU架构的高效并行执行。 与需要用于反射和衍射的单独算法的现有方法不同,我们的统一公式在所有交互序列中保持一致的问题维度,使其特别适用于矢量化计算。 通过隐式分化,我们实现了高效的梯度计算,而不通过求解器迭代进行差异化,显著优于传统的自动差异化方法。 数字模拟显示收敛率可与专业牛顿方法相媲美,同时为大规模应用提供卓越的可扩展性。 该方法与JAX和DrJIT等可微分编程库无缝集成,为无线传播建模的逆向设计和优化提供了新的可能性。 源代码可公开查阅https://github.com/jeertmans/fpt-jax。
继续滚动加载更多