0% found this document useful (0 votes)
234 views3 pages

LAB1:Parallel and Distributed Computing (CSE4001)

The document describes two C programs that create and measure multiple threads. The first program creates 1k, 5k, 10k, 20k and 50k threads and measures the time taken for each group. The second program creates two threads - one prints "Parallel" and the other prints "Distributed Computing".

Uploaded by

karthik reddy
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
234 views3 pages

LAB1:Parallel and Distributed Computing (CSE4001)

The document describes two C programs that create and measure multiple threads. The first program creates 1k, 5k, 10k, 20k and 50k threads and measures the time taken for each group. The second program creates two threads - one prints "Parallel" and the other prints "Distributed Computing".

Uploaded by

karthik reddy
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 3

LAB1:Parallel and Distributed Computing(CSE4001)

Question-1

Write a multithreaded-thread program in c to create 1k, 5k, 10k, 20k, and 50k threads and measure
the time taken for each thread group.

CODE

#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
#include<time.h>

void *myThreadFun(void *vargp)


{
int *myid=(int *)vargp;
//printf("Thread Number: %d\n",*myid);

int main()
{
pthread_t thread_id;
int i;
printf("Before Thread\n");
clock_t t;
t = clock();
for(i=0;i<1000;i++)
pthread_create(&thread_id, NULL, myThreadFun, (void *)&i);
t=clock()-t;
double time_taken = ((double)t)/CLOCKS_PER_SEC;
printf("1k thread took %f seconds to execute \n", time_taken);

t = clock();
for(i=0;i<5000;i++)
pthread_create(&thread_id, NULL, myThreadFun, (void *)&i);
t=clock()-t;
time_taken = ((double)t)/CLOCKS_PER_SEC;
printf("5k thread took %f seconds to execute \n", time_taken);

t = clock();
for(i=0;i<10000;i++)
pthread_create(&thread_id, NULL, myThreadFun, (void *)&i);
t=clock()-t;
time_taken = ((double)t)/CLOCKS_PER_SEC;
printf("10k thread took %f seconds to execute \n", time_taken);

t = clock();
for(i=0;i<20000;i++)
pthread_create(&thread_id, NULL, myThreadFun, (void *)&i);
t=clock()-t;
time_taken = ((double)t)/CLOCKS_PER_SEC;
printf("20k thread took %f seconds to execute \n", time_taken);
t = clock();
for(i=0;i<50000;i++)
pthread_create(&thread_id, NULL, myThreadFun, (void *)&i);
t=clock()-t;
time_taken = ((double)t)/CLOCKS_PER_SEC;
printf("50k thread took %f seconds to execute \n", time_taken);
pthread_exit(NULL);
return 0;
}

Output

Question-2

Write a program to create two threads. Thread1 has to print the print String1 “Parallel”.
Thread2 has to print the String2 “Distributed Computing” .

CODE
#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
void *myThreadFun(void *vargp)
{
int *myid=(int *)vargp;
printf("Thread 1:Parallel\n");

}
void *myThreadFun2(void *vargp)
{
int *myid=(int *)vargp;
printf("Thread 2:Distributed Computing\n");

int main()
{
pthread_t thread_id;
int i=1;

pthread_create(&thread_id, NULL, myThreadFun, (void *)&i);


i=2;
pthread_create(&thread_id, NULL, myThreadFun2, (void *)&i);
pthread_exit(NULL);
return 0;
}

Output

You might also like