【发布时间】:2013-10-09 21:36:16
【问题描述】:
我正在使用 C# 创建一个数据库。问题是我有接近 400 万个数据点,完成数据库需要很长时间(可能几个月)。代码看起来像这样。
int[,,,] Result1=new int[10,10,10,10];
int[,,,] Result2=new int[10,10,10,10];
int[,,,] Result3=new int[10,10,10,10];
int[,,,] Result4=new int[10,10,10,10];
for (int i=0;i<10;i++)
{
for (int j=0;j<10;j++)
{
for (int k=0;k<10;k++)
{
for (int l=0;l<10;l++)
{
Result1[i,j,k,l]=myFunction1(i,j,k,l);
Result2[i,j,k,l]=myFunction2(i,j,k,l);
Result3[i,j,k,l]=myFunction3(i,j,k,l);
Result4[i,j,k,l]=myFunction4(i,j,k,l);
}
}
}
}
Result 数组的所有元素是完全相互独立的。我的电脑有 8 个内核,我为每个 myFunction 方法创建了一个线程,但整个过程仍然需要很多时间,因为有很多情况。我想知道是否有任何方法可以在 GPU 而不是 CPU 上运行它。我以前没有做过,我不知道它会如何工作。如果有人可以帮助我,我将不胜感激。
【问题讨论】:
-
您是否在表中插入行?使用 Sql 服务器?尝试批量插入;您的瓶颈可能是数据库,而不是 c# 程序。
标签: c# parallel-processing gpu