Arrays pointers for parallel algorithms, Computer Networking

Assignment Help:

Arrays Pointers

An array is a set of the same type of data. Arrays are very well-liked data structures in parallel programming due to their easiness of use and declaration. At the single hand, arrays can be used as a common memory resource for the shared memory programming; on the other hand they can be simply partitioned into sub-arrays for data parallel programming. This is the easiness of the arrays that creates them most frequently used data structure in parallel programming.  We shall study arrays in the context of two languages C and Fortran 90.

Consider the array shown below. The size of the array is 10.

5

10

15

20

25

30

35

40

45

50

Index of the primary element in Fortran 90 is 1 but that in C is 0 and therefore the index of the last element in Fortran 90 is 10 and that in C is 9. If we assign the name of array as A, then ith element in Fortran 90 is A(i) but in C  it is A[i-1].  Arrays may be one- dimensional or they might be multi-dimensional.

General form of declaration of array in Fortran 90 is

type, DIMENSION(bound) [,attr] :: name

for example the declaration

INTEGER, DIMENSION(5): A

declare an array A of size 5.

General form of declaration of array in C is

type array_name [size]

For example the declaration A

int A[10]

declares an array of size 10.

Fortran 90 allows one to use particular sections of an array. To access a section of an array, you require the name of the array followed by the two integer values divided by a colon enclosed in the parentheses. The integer values signify the indices of the section required.

For example, a(3:5) refers to elements 3, 4, 5 of the array, a(1:5:2) refers to elements 1, 3, 5 of the array , and b(1:3, 2:4) refers to the elements from rows 1 to 3 and columns 2 to 4. In C there is only one type of array whose size is determined statically, though there are provisions for dynamic allocation of storage by pointers and dynamic memory allocation functions like calloc and malloc functions. In Fortran 90, there are 3 possible kinds of arrays depending on the binding of an array to an amount of storage : Static arrays with fixed size at the time of declaration and cannot be altered during implementation ; Semi-dynamic arrays or automatic arrays: the size is determined after entering a subroutine and arrays can be formed to match the exact size needed, but local to a subroutine ; and Dynamic arrays or  allocatable arrays  : the size can be altered during implementation.

In these languages, array operations are written in a compact form that often makes programs more clear.

Consider the loop:

s=0

do i=1,n a(i)=b(i)+c(i)

s=s+a(i)

end do

It can be written (in Fortran 90 notation) as follows:

a(1:n) = b(1:n) +c(1:n)

s=sum(a(1:n))

In addition to Fortran 90, there are lot of languages that gives succinct operations on arrays. Some of the most liked are APL, and MATLAB. While these languages were not developed for parallel computing, quite for expressiveness, they can be used to state parallelism since array operations can be easily implemented in parallel. Therefore, all the arithmetic operations (+, -, * /, **) engaged in a vector expression can be performed in parallel. Intrinsic reduction functions, such as the sum above, also can be done in a parallel .


Related Discussions:- Arrays pointers for parallel algorithms

Udp connection establishment & termination, simple introduction,defination ...

simple introduction,defination and with example & digram

What is the effect on the security of the password, Question: (a) What...

Question: (a) What is a script kiddie? Is it a significant security threat, and why? (b) Assume that UNIX uses the user login name in lieu of the traditional salt, what is

Difference between unicast and anycast, Difference between Unicast and Anyc...

Difference between Unicast and Anycast Unicast: An identifier for a single interface. A packet sent to a unicast address is delivered to the interface identified by that addres

What are the five major network services, What are the five major network s...

What are the five major network services? Major Network Services are: a. File Services b. Message Services c.  Print Services  d.  Application Services e.  Datab

Wide area network, XYZ INC. is a large manufacturing firm that operates 5 f...

XYZ INC. is a large manufacturing firm that operates 5 factories in Dallas, 4 factories in Los Angeles, and 5 factories in Albany, New York. It operates a tightly connected order m

Intranet, Intranets are fundamentally "small" Internets. They employ the sa...

Intranets are fundamentally "small" Internets. They employ the same network facilities which the Internet does, however access is limited to a restricted sphere. For example, a com

Network analyzers, NETWORK ANALYZERS: A network analyzer also known ne...

NETWORK ANALYZERS: A network analyzer also known network monitor or a network sniffer is used to calculate the performance of or debug a network. It may report statistics s

Function of the transport system and workbench organizer, What is the funct...

What is the function of the transport system and workbench organizer? The function of the transport system and the Workbench Organizer is to handle any changes made to objects

Illustrate return to zero encoding, Q Illustrate Return to Zero encoding? ...

Q Illustrate Return to Zero encoding? - In NRZ-I long strings of 0s may still be a problem - May comprise synchronization as part of the signal for both 1s and 0s - How?

Which steps are used at receiver end by check sum, Q. Which steps are used ...

Q. Which steps are used at receiver end by check sum? The receiver follows these steps: The unit is divided into "k" sections each of "n" bits All sections are

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