nimCSO:用于组合空间优化的 Nim 软件包
材料科学
2024-12-17 v1 数据分析、统计与概率
摘要
nimCSO 是一个高性能工具,用于从组合数据集中选择组件(数据维度),以优化数据可用性和密度,用于机器学习等应用。对于由组件存在性导致的复杂组合在高度维度空间中的选择问题是组合难题。在材料科学中,即可见,CCM(Compositionally Complex Materials)数据集常常涵盖 20-45 个化学元素、5-10 种加工类型以及多个温度区间,最多可达 60 个总数据维度。nimCSO 核心利用 Nim 语言(nim-lang.org)的元编程能力,针对特定问题陈述和数据集在编译时进行自优化,无论是速度还是内存处理。本文所示,nimCSO 达到硬件物理极限(L1 缓存延迟),在速度和内存使用方面分别比高效的原生 Python 实现快 400 倍和 50 倍(不计解释器),同时在检查候选解时,分别比 NumPy 实现快 35 倍和 17 倍。它既是用户就绪工具,实现了两种高效的暴力搜索方法(处理最多 25 个维度)、自定义搜索算法(处理最多 40 个维度)以及遗传算法(处理任意维度),也是构建更复杂方法的脚手架,包括超出数据可用性的启发式方法。所有配置均通过简单的人类可读 YAML 配置文件和纯文本数据文件完成,使修改搜索方法及其参数无需编程知识,仅需基本命令行技能即可。
引用
@article{arxiv.2403.02340,
title = {nimCSO: A Nim package for Compositional Space Optimization},
author = {Adam M. Krajewski and Arindam Debnath and Wesley F. Reinhart and Allison M. Beese and Zi-Kui Liu},
journal= {arXiv preprint arXiv:2403.02340},
year = {2024}
}
备注
5 pages, 3 figures, 2 tables, ULTERA Project, documented at https://nimcso.phaseslab.org, code at https://github.com/amkrajewski/nimCSO