Я очень хочу узнать, как использовать возможности параллельной обработки графических процессоров.Тем не менее, я не хочу делать графику!Я попробовал учебник Cg, но он кажется тяжелым с графическими терминами.Кроме того, я не могу понять, как я могу подключить такую программу к некоторому входу и выходу.
Давайте рассмотрим следующую очень простую программу, которая, очевидно, может выиграть от параллелизма (игнорируя медленную скорость жесткого диска):Чтение двух больших целочисленных массивов из 2 файлов, создание нового массива путем добавления элементов двух последних и сохранение его в другом файле.Я не тестировал его, но вот как бы я написал его на c ++:
#include <iostream>
#include <fstream>
using namespace std;
int main(void)
{
const int N=10000000;
int a[N],b[N],c[N];
ifstream a_source ("file_a",ios::binary);
ifstream b_source ("file_a",ios::binary);
ofstream c_target ("file_a",ios::binary);
a_source.read((char*)a,N*sizeof(int));
b_source.read((char*)b,N*sizeof(int));
for(int i=0;i<N;i++)
c[i]=a[i]+b[i];
c_target.write((char*)c,N*sizeof(int));
return 0;
}
Не могли бы вы уточнить, как я могу использовать Cg для этого?