我一直在尝试设计一种算法来计算大平方矩阵(N <= 1000)的行列式。我被允许使用多线程,但我仍然无法设计算法。作业指出,我应该使用高斯消去法。然而,没有输入数据,所以测试数据在我身上。对于大矩阵(N ~1000),它是一个二进制矩阵,否则 - 整数矩阵。我想知道,对于这个任务是否存在相对时间效率(少于 10 秒)的多线程算法。很高兴听到意见。
编辑:: 我想出了使用部分旋转来找到在当前迭代位置具有最大值的行,将其与当前行交换的想法(这种启发式使精度保持最佳)。然后,并行部分是在矩阵足够大的情况下在多线程中进行行添加(我使用了 8 个线程,因为它在四核上给出了最好的结果)。与单线程方法相比,这种方法给出了更精确的结果,并且随着矩阵大小的增加而提高了效率。事实证明,它很容易实现。