2013-02-22 2 views
0

Мне нужно скомпилировать код для проекта, и я получаю много ошибок, а не потому, что код написан неправильно, но я думаю, что есть переменные, которые я должен заменить, прежде чем пытаться скомпилировать. Реальный код немного больше, так как он был разработан для параллельных-вычислений, но ниже, является более простым вариантом без parallelism.What цели этой программы и какие входные переменные:Цель программы

int main(int argc, char *argv[]) { 
    int n = ...; 
    float *x, *y; 
    x = new float[n+1]; 
    y = new float[n+1]; 

    ... // fill x, y 

    // do computation 
    float e = 0; 
    for (int i=1; i<n; ++i) { 
    x[i] += (y[i+1] + y[i-1])*.5; 
    e += y[i] * y[i]; 
    } 

    ... // output x, e 

    delete[] x, y; 
    return 0; 
} 
+1

К сожалению, это будет очень трудно для тех, кто ответить на такой общий вопрос. Если вы не знаете цели программы, почему вы даже пытаетесь ее написать или скомпилировать? Первым шагом в решении любой проблемы является представление о проблеме, которую вы пытаетесь решить. Однако, учитывая то, что у вас есть, лучшим предложением было бы выбрать произвольное небольшое число для 'n' и некоторых произвольных чисел для значений' n + 1' 'x' и' y' (скажем, целых чисел от '1' на 'n + 1'), добавьте код для вывода' x' и 'e', а затем просмотрите результаты. – Simon

+0

Ухх вы просто вырезали случайную страницу из учебника и пытаетесь выяснить контекст? закрыть вопрос –

+0

Если вы не знаете, что делает этот код, зачем он вам нужен? –

ответ

1

OK. Кажется, что код, в основном, является примером или доказательством концепции. Я предполагаю, что Parallel For это специальная функция «ForEach», и некоторые сетки данных ...

Я изменил один из образцов на сайте (если кто-то хотел бы получить более читаемый пример). Взятые из Here

int main(int argc, char *argv[]) { 

    int Repeat = 100000;  // Will perform the computation 100,000 times. 

    Grid1 *Grd = new Grid1(0, Repeat+1); 
    DistArray X(Grd), Y(Grd); // Some data grid arrays (used for the computations) 


    // Set X and Y... 
    ForEach(int i, it, 
    X(i) = 0; 
    Y(i) = 1*i;) 


    Grid1IteratorSub it(1, Repeat, Grd); 

    float E = 0; // One of the return values 

    // Do the computations: 
    ForEach(int i, it, 
    X(i) += (Y(i+1) + Y(i-1))*.5; 
    E += sqr(Y(i));) 

    // Output the modified data: 
    cout << "X: " << X; 
    cout << "E: " << E; 

    return 0; 

} 

** Отредактировано после просмотра Parallel For

+0

Существует сайт на sourceforge с программой под названием parallel-for, целью которой является попытка унификации различных типов параллельного кода в одну более простую версию. Я сравниваю производительность PVM и MPI с кластерами gpu для моего проекта, а на сайте есть пример кода для PVM с использованием cuda и MPI с использованием cuda. Мне нужно определить функцию этого кода, которая является единственной компьютерной версией кластерного программного обеспечения, поэтому я могу сказать, могу ли я сравнить эти два, синхронизируя их. – user2093696

+0

А, очень интересно ... Мне всегда нравились параллельные вычисления. – Mitch

+0

Я вижу код на параллельном для, довольно интересный ... Удовлетворен, что код не очень читабельен (ему нужны более описательные имена переменных). – Mitch