Я создаю базу данных с использованием C#. Проблема в том, что у меня близко к 4 миллионам данных, и для заполнения базы данных требуется много времени (может быть, несколько месяцев). Код выглядит примерно так.Параллельное вычисление элементов массива на GPU
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);
}
}
}
}
Все элементы массива результатов полностью независимы друг от друга. Мой ПК имеет 8 ядер, и я создал поток для каждого из методов myFunction, но все же весь процесс займет много времени, потому что есть много случаев. Мне интересно, есть ли способ запустить это на GPU, а не на процессоре. Я не делал этого раньше, и я не знаю, как он будет работать. Я ценю, если кто-то может мне помочь в этом.
Вы вставляете строки в таблицу? Использование SqL Server? Попробуйте Массовая вставка; вашим узким местом может быть БД, а не программа C#. –