Determine what part of global array to work on thread number, Computer Engineering

Assignment Help:

Q. Determine what part of global array to work on thread number?

#include < omp.h >

void subdomain(float x[ ], int istart, int ipoints)

{

int i;

for (i = 0; i < ipoints; i++)

x[istart+i] = 123.456;

}

void sub(float x[ 10000], int npoints)

{

int t_num, num_t, ipoints, istart;

#pragma omp parallel default(shared) private(t_num , num_t, ipoints, istart)

{

t_num = omp_get_thread_num(); //thread number of current thread

num_t = omp_get_num_threads(); //number of threads

ipoints = npoints / num_t; /* size of partition */

istart = t_num * ipoints; /* starting array index */

if (t_num == num_t-1) /* last thread may do more */

ipoints = npoints - istart;

subdomain(x, istart, ipoints);

}

}

int main()

{

float array[10000];

sub(array, 10000);

return 0;

}

In this illustration we used two library methods : omp_get_num_threads() and omp_get_thread_num().

omp_get_num_threads() returns number of threads which are currently being used in parallel directive. 

omp_get_thread_num() returns thread number (an integer from 0 to omp_get_num_threads() - 1 where thread 0 is master thread).


Related Discussions:- Determine what part of global array to work on thread number

Describe about full adder, Q. Describe about full adder? Let's take ful...

Q. Describe about full adder? Let's take full adder. For this other variable carry from previous bit addition is added let'us call it 'p'. Truth table and K-Map for this is dis

Difference between data warehousing and data mining, Difference between dat...

Difference between data warehousing and data mining The difference between data warehousing and data mining is that data warehousing shows to the data storage while data mining

Joint application development session leader, Q.Joint Application Developme...

Q.Joint Application Development session leader? JAD session leader: JAD leader organizes and runs the JAD. This person is trained in group management and facilitation as well

An 8086 interrupt, An 8086 interrupt can take placedue to the following rea...

An 8086 interrupt can take placedue to the following reasons: 1.  Hardware interrupts caused by some external hardware device. 2.  Software interrupts that can be invoked wit

Pipelining - computer architecture, Pipelining - computer architecture: ...

Pipelining - computer architecture: The Pipeline Defined According to John Hayes "A pipeline processor consists of a sequence of processing circuits, called stages or

Operator, write algorithm and draw flowchart for exchange the values of two...

write algorithm and draw flowchart for exchange the values of two variables.

What are different normalization forms, What are different normalization fo...

What are different normalization forms? 1NF: Eliminate Repeating Groups Make a separate table for every set of related attributes, and give each table a primary key. Each fie

Explain standard set of procedure to complete a call process, Explain a s...

Explain a standard set of procedure for completing a local telephone call or call processing. Completing a local telephone call among two subscribers connected to the similar

Advantages and disadvantage of message passage programming, Q. Advantages a...

Q. Advantages and Disadvantage of Message Passage Programming? Advantages of Message Passage Programming     Portable It is less error prone Offers excellent

In 8085 which is called as high order / low order register, Flag is known a...

Flag is known as Low order register & Accumulator is known as High order Register.

Write Your Message!

Captcha
Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd