単純な数値解析コード(台形公式の数値積分)を、CUDA対応のGPUで実行できるものに変換しようとしています。そこにはたくさんの文献がありますが、それはすべて、ここで必要とされるものよりもはるかに複雑に思えます!私の現在のコードは次のとおりです。
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#define N 1000
double function(double);
int main(void)
{
int i;
double lower_bound, upper_bound, h, ans;
printf("Please enter the lower and upper bounds: ");
scanf(" %lf %lf", &lower_bound, &upper_bound);
h = (upper - lower) / N;
ans = (function(lower) + function(upper)) / 2.0;
for (i = 1; i < N; ++i) {
ans += function(i * h);
}
printf("The integral is: %.20lf\n", h * ans));
return 0;
}
double function(double x)
{
return sin(x);
}
これは、Nが非常に大きくなるまでうまく機能します。私はより高速なopenMPを使用して実装を行いましたが、CUDAについても少し知っておくと便利だと思います。どこから始めればいいのか、このコードを簡単に変換する方法があるのか、誰か提案がありますか?どうもありがとう、ジャック。