这个问题涉及 MAGMA 计算机代数系统(不是 GPU 库上的矩阵代数)。
我在 Mac OSX 上使用 MAGMA 已经很多年了,但最近,我遇到了以前运行良好的代码崩溃。
我的实验让我怀疑是 Mac OSX 11 (Big Sur) 的最新更新导致了这些问题。我已经准备了该问题的 MWE,并在大约 5 台 Mac 上对其进行了测试,但仅在运行 Big Sur 的 Mac 上失败了。
当我尝试快速遍历 Magma 中可用的传递组列表时,就会出现问题。
这里是一个测试函数的定义,它简单地依次创建每个传递组,然后返回true。
function testDeg(deg)
for i in [1..NumberOfTransitiveGroups(deg)] do
g := TransitiveGroup(deg,i);
end for;
return true;
end function;
如果我在 24 次的传递群上运行这个,通过调用
testDeg(24);
然后在一些组之后,它崩溃了。
> testDeg(24);
testDeg(
deg: 24
)
TransitiveGroup(
d: 24,
n: 1194
)
In file "/Applications/Magma/package/Group/GrpData/trngps.m", line 18, column
51:
>> return TransitiveGroup(TransitiveGroupDatabase(d), n);
^
Runtime error in 'TransitiveGroupDatabase': GetLibraryRoot() is set to
/Applications/Magma/libs but the file GetLibraryRoot()/data/TrnGps/trans.dat
either does not exist or cannot be read (Interrupted system call).
在这种情况下,崩溃发生在第 1194 组,但如果我重新运行它,这个数字会有所不同。
错误信息声称某个文件不存在或无法读取。
但是该文件肯定确实存在,因为循环的前 1193 次迭代都使用了相同的文件。
不知何故,“系统调用中断”存在问题。
目前,我只是想收集关于这个问题是否真的与 Mac OSX 11 直接相关的证据。我已经联系了 MAGMA 开发人员,他们没有运行 Big Sur 的 Mac,所以他们无能为力.
非常感谢
(今天早上我刚从 OSX 11.1 更新到 OSX 11.2,问题仍然存在)
提前致谢