Skip to content

Instantly share code, notes, and snippets.

View mix008's full-sized avatar

mix008

View GitHub Profile
@mix008
mix008 / CudaExamples.cpp
Created August 27, 2018 13:41
Lab 4 Zadatak 6 - Cuda
#include "stdio.h"
#define N 4
/*
6. Napisati CUDA program koji računa sledeći izraz: A - B, gde su A i B kvadratne matrice. Sve
negativne vrednosti zameniti nulom. Voditi računa o mogućim greškama prilikom poziva CUDA
funkcija. Napisati kod za testiranje validnosti rezultata, upoređivanjem sa vrednostima
dobijenim izvršavanjem sekvencijalnog koda koji izračunava isti izraz. Pripremiti se za diskusiju
ponašanja programa u zavisnosti od broja blokova i broja niti u okviru jednog bloka.
*/
__host__ void initMatrix(int mat1[N][N], int mat2[N][N])
@mix008
mix008 / CudaExamples.cpp
Created August 27, 2018 13:33
Lab 4 Zadatak 5 - Cuda
#include "stdio.h"
#define DIM 4
#define ELEM 3
/*
5. Napisati CUDA program koji računa broj ponavljanja elementa x u kvadratnoj matrici A. Voditi
računa o mogućim greškama prilikom poziva CUDA funkcija. Napisati kod za testiranje validnosti
rezultata, upoređivanjem sa vrednostima dobijenim izvršavanjem sekvencijalnog koda koji
izračunava isti izraz. Pripremiti se za diskusiju ponašanja programa u zavisnosti od broja blokova
i broja niti u okviru jednog bloka.
*/
@mix008
mix008 / CudaExamples.cpp
Created August 27, 2018 13:26
Lab 4 Zadatak 4 - Cuda
#include "stdio.h"
#define N 4
/*
4. Napisati CUDA program koji za date dve kvadratne matrice A i B kreira treću, matricu C tako da
je c[i][j] = max(A[i][j], B[i][j]). Voditi računa o mogućim greškama prilikom poziva CUDA funkcija.
Napisati kod za testiranje validnosti rezultata, upoređivanjem sa vrednostima dobijenim
izvršavanjem sekvencijalnog koda koji izračunava isti izraz. Pripremiti se za diskusiju ponašanja
sekvencijalnog i paralelnog programa
*/
__host__ void initMatrix(int mat1[N][N], int mat2[N][N])
@mix008
mix008 / CudaExamples.cpp
Created August 27, 2018 13:21
Lab 4 Zadatak 3 - Cuda
#include "stdio.h"
#define N 4
/*
3. Napisati CUDA program kojim se generiše skalarni proizvod dva vektora. Voditi računa o
mogućim greškama prilikom poziva CUDA funkcija. Napisati kod za testiranje validnosti
rezultata, upoređivanjem sa vrednostima dobijenim izvršavanjem sekvencijalnog koda koji
izračunava isti izraz. Pripremiti se za diskusiju ponašanja programa u zavisnosti od broja blokova
i broja niti u okviru jednog bloka.
*/
__host__ void initArray(int arr[N], int num)
@mix008
mix008 / CudaExamples.cpp
Created August 27, 2018 13:16
Lab 4 Zadatak 2 - Cuda
#include "stdio.h"
#define N 4
/*
2. Napisati CUDA program koji računa sledeći izraz: A*B, gde je A kvadratna matrica, a B vektor
odgovarajuće veličine. Voditi računa o mogućim greškama prilikom poziva CUDA funkcija.
Napisati kod za testiranje validnosti rezultata, upoređivanjem sa vrednostima dobijenim
izvršavanjem sekvencijalnog koda koji izračunava isti izraz. Pripremiti se za diskusiju ponašanja
programa u zavisnosti od broja blokova i broja niti u okviru jednog bloka.
*/
__host__ void initMatrix(int mat[N][N])
@mix008
mix008 / CudaExamples.cpp
Created August 27, 2018 13:11
Lab 4 Zadatak 1 - Cuda
#include "stdio.h"
#define P 4
/*
1. Napisati CUDA program koji računa sledeći izraz: A*x + B, gde su A i B kvadratne matrice, a x
skalar. Voditi računa o mogućim greškama prilikom poziva CUDA funkcija. Napisati kod za
testiranje validnosti rezultata, upoređivanjem sa vrednostima dobijenim izvršavanjem
sekvencijalnog koda koji izračunava isti izraz. Pripremiti se za diskusiju ponašanja programa u
zavisnosti od broja blokova i broja niti u okviru jednog bloka.
*/
__global__ void MulMatri(int *a, int *b, int *c)
@mix008
mix008 / OpenMPExamples.cpp
Created August 27, 2018 09:48
Lab 3 Zadatak 6 - OpenMP
#include "stdafx.h"
#include <iostream>
#include <omp.h>
#include <time.h>
#include <string>
/*
6. Napisati OpenMP kod koji sadrži sledeću petlju:
for (i=0;i<m;i++)
for (j=0;j<n;j++)
a[i][j]=2*a[i-1][j];
@mix008
mix008 / OpenMPExamples.cpp
Created August 27, 2018 09:40
Lab 3 Zadatak 5 - OpenMP
#include "stdafx.h"
#include <iostream>
#include <omp.h>
#include <time.h>
/*
5. Napisati OpenMP program kojim se generiše maksimalna vrednost elemanata vektora,
podelom iteracija petlje između različitih niti korišćenjem direktive critical za kombinovanje
parcijalnih rezultata u nitima. Uporediti vremena izvršenja u oba slučaja sa sekvencijalnim
vremenom izvršenja. Uporediti ova rešenja za različite vrednosti dimenizija vektora.
*/
@mix008
mix008 / OpenMPExamples.cpp
Created August 27, 2018 09:35
Lab 3 Zadatak 4 - OpenMP
#include "stdafx.h"
#include <iostream>
#include <omp.h>
#include <time.h>
#include <string>
/*
4. Napisati OpenMP program kojim se generiše prosečna vrednost elemanata vektora, podelom
iteracija petlje između različitih niti sa i bez korišćenja odredbe redukcije za kombinovanje
parcijalnih rezultata u nitima. Uporediti vremena izvršenja u oba slučaja sa sekvencijalnim
vremenom izvršenja. Uporediti ova rešenja za različite vrednosti dimenizija vektora.
@mix008
mix008 / OpenMPExamples.cpp
Created August 27, 2018 09:29
Lab 3 Zadatak 3 - OpenMP
#include "stdafx.h"
#include <iostream>
#include <omp.h>
#include <time.h>
#include <string>
/*
3. Napisati OpenMP program kojim se pronalazi ukupan broj prostih brojeva između 1 i N,
podelom iteracija petlje između različitih niti sa i bez korišćenja odredbe redukcije za
kombinovanje parcijalnih rezultata u nitima. Uporediti vremena izvršenja u oba slučaja sa
sekvencijalnim vremenom izvršenja. Uporediti ova rešenja za različite vrednosti N.