Program C++ saya membutuhkan waktu sekitar 300 detik untuk dijalankan. Di dalam program saya, saya perlu membagi vektor saya. Penganalisis VS memberi tahu bahwa ini membutuhkan sekitar 15% waktu berjalan. ini kodenya:
template <class T> myVector<T> cWisDivide(myVector<T> &vec1,
myVector<T> &vec2)
{
try
{
if (vec1._rows == vec2._rows)
{
myVector<T> result(vec1._rows);
//#pragma omp parallel for
for (int r = 1; r <= vec1._rows; r++)
{
if (vec2(r) != 0)
{
result(r) = vec1(r) / vec2(r);
}
else
{
throw std::runtime_error("");
}
}
return result;
}
}
catch (const exception &e)
{
....
}
}
fungsi ini dipanggil berkali-kali. Jika saya menggunakan #pragma ... sebelum loop, penggunaan cpu tetap 100% selama sekitar 350 detik. yang lebih lama dari waktu yang dibutuhkan untuk menjalankan program secara berurutan.
Saya akan sangat menghargai jika ada yang bisa membantu saya dalam masalah ini.
vec1._rows
? - person Oliver Charlesworth   schedule 08.02.2015r
dalamfor
loop harus didefinisikan sebelumfor
itu sendiri. Seperti ini:int r; #pragma.... for(r = 1...)
- person Michał Walenciak   schedule 08.02.2015for
. Bunyinya: Perhatikan bagaimana penghitung iterasi j dan k harus dibuat pribadi. Jika Anda ingin menandai sesuatu sebagaipublic
atauprivate
maka harus sudah ada (jadi harus terlihat sebelum#pragma
) - person Michał Walenciak   schedule 08.02.2015