Program No.3.A
Write an OpenMP program (for shared memory multiprocessor architecture) to sort the given list of numbers using Radix Sort. Display the appropriate environment variables to demonstrate parallel programming.
Solution:
#include <stdio.h>
#include<omp.h>
int
main ()
{
int b, i, j, p, q, d, z = 9, digit = 0, max,n;
int thread;
int a[100];
printf("Enter the Number of Elements U Want TO enter\n");
scanf("%d",&n);
printf("Enter the Elements\n");
for(i=0;i<n;i++){
scanf("%d",&a[i]);
}
d = 10;
max = a[0];
for (i = 1; i < n; i++)
{
if (max < a[i])
{
max = a[i];
}
}
while (max != 0)
{
max = max / 10;
digit++;
}
#pragma omp parallel for schedule(static,1) num_threads(9)
for (z = 0; z < digit; z++)
{
for (i = 0; i < n; i++)
{
p = a[i] % d;
for (j = i + 1; j < n; j++)
{
q = a[j] % d;
if (p > q)
{
b = a[i];
a[i] = a[j];
a[j] = b;
p = a[i] % d;
}
}
}
d = d * 10;
}
printf ("The array is:\n");
for (i = 0; i < n; i++)
{
printf ("%d\n", a[i]);
}
#pragma omp parallel for schedule(static,1) num_threads(9)
for (i = 0; i < 11; i++)
{
thread = omp_get_thread_num ();
printf ("%d\t thread:%d\n", a[i], thread);
}
}
Write an OpenMP program (for shared memory multiprocessor architecture) to sort the given list of numbers using Radix Sort. Display the appropriate environment variables to demonstrate parallel programming.
Solution:
#include <stdio.h>
#include<omp.h>
int
main ()
{
int b, i, j, p, q, d, z = 9, digit = 0, max,n;
int thread;
int a[100];
printf("Enter the Number of Elements U Want TO enter\n");
scanf("%d",&n);
printf("Enter the Elements\n");
for(i=0;i<n;i++){
scanf("%d",&a[i]);
}
d = 10;
max = a[0];
for (i = 1; i < n; i++)
{
if (max < a[i])
{
max = a[i];
}
}
while (max != 0)
{
max = max / 10;
digit++;
}
#pragma omp parallel for schedule(static,1) num_threads(9)
for (z = 0; z < digit; z++)
{
for (i = 0; i < n; i++)
{
p = a[i] % d;
for (j = i + 1; j < n; j++)
{
q = a[j] % d;
if (p > q)
{
b = a[i];
a[i] = a[j];
a[j] = b;
p = a[i] % d;
}
}
}
d = d * 10;
}
printf ("The array is:\n");
for (i = 0; i < n; i++)
{
printf ("%d\n", a[i]);
}
#pragma omp parallel for schedule(static,1) num_threads(9)
for (i = 0; i < 11; i++)
{
thread = omp_get_thread_num ();
printf ("%d\t thread:%d\n", a[i], thread);
}
}
0 comments:
Post a Comment