Modul 2. Clause OpenMP (Fadhlin Ritonga)
Modul 2. Clause OpenMP (Fadhlin Ritonga)
Universitas Islam Negeri Program Studi Teknik Elektro Tanggal masuk: Tanggal
Sultan Syarif Kasim Riau keluar:
Instruktur Praktikum: Oktaf Billian Kharisma, ST. MT Hubungi Instruktur Praktikum jika ada
pertanyaan
Dengan ini saya bersumpah bahwa laporan yang saya kumpulkan ini adalah hasil pekerjaan saya
sendiri dan tidak menyontek hasil pekerjaan praktikan lain.
2.1 Tujuan
Menguasai clause dalam OpenMP
Clause copyin() hanya dapat digunakan dalam nama-direktif parallel, for, sections,
parallel for, dan parallel sections.
2.4 Eksperimen
Buatlah seluruh program paralel di bawah ini dan jelaskan dalam laporan praktikum.
2.4.1 Clause copyin(var):
#include <cstdio>
int i;
#pragma omp threadprivate(i)
int main()
{
int n, chunk;
double a[100], b[100], result;
n = 100;
chunk = 10;
result = 0.0;
for (i=0; i < n; i++)
{
a[i] = i * 1.0;
b[i] = i * 2.0;
}
#pragma omp parallel for copyin (i)
for (i=0; i < n; i++)
result = result + (a[i] * b[i]);
printf("Final result= %f\n",result);
}
#include <cstdio>
int main()
{
int i, n, chunk;
double a[100], b[100], result;
n = 100;
chunk = 10;
result = 0.0;
for (i=0; i < n; i++)
{
a[i] = i * 1.0;
b[i] = i * 2.0;
}
#pragma omp single copyprivate(i)
for (i=0; i < n; i++)
result = result + (a[i] * b[i]);
printf("Final result= %f\n",result);
}
#include <cstdio>
int main()
{
int i, n, chunk;
double a[100], b[100], result;
n = 100;
chunk = 10;
result = 0.0;
for (i=0; i < n; i++)
{
a[i] = i * 1.0;
b[i] = i * 2.0;
}
#pragma omp parallel for firstprivate(i)
for (i=0; i < n; i++)
result = result + (a[i] * b[i]);
printf("Final result= %f\n",result);
}