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

Define the class B addresses, Define the Class B Addresses? First t...

Define the Class B Addresses? First two octets are the network number as well as the last two octets are the host number 16382 probable blocks for assignment to organi

Broadcast and multicast , Broadcast and Multicast : Broadcast and Mult...

Broadcast and Multicast : Broadcast and Multicast :In the broadcast interconnection network, at one time one node transfer the data and all other nodes get that data.  Broadca

Electronic mail - application layer, Electronic Mail One  of the  most...

Electronic Mail One  of the  most popular internet  services is electronic mail ( e mail). At  the beginning  of the internet era teh message sent by  electronic  mail were sh

Multicast routing protocols, Multicast Routing Protocols Multicast gr...

Multicast Routing Protocols Multicast group addresses are assigned by IANA [Internet Assigned Numbers Authority for well known services and protocols. Information is exchang

Ethernet cable, what is max length of cable I can use

what is max length of cable I can use

10base-t, 10BASE-T:  This is another standard of wiring function. It i...

10BASE-T:  This is another standard of wiring function. It is usually known 10Base-T, TP Ethernet or Twisted Pair. It removes AUI cable with twisted pair cable and thick coax

Efficiency vs. number of processors, Efficiency :- The other main metr...

Efficiency :- The other main metric used for performance measurement is efficiency of parallel computer system i.e. how the resources of the parallel systems are being utilized

Firewall, confiriguration,capabilities,implementation

confiriguration,capabilities,implementation

State about the future of the intranet, Future of the intranet At ...

Future of the intranet At present, the world of information technology is guided bythe C 3 paradigm that stands for Command, Control and Communication, which is normally

Define routing, Define Routing? The process of determining systematical...

Define Routing? The process of determining systematically hoe to forward messages toward the destination nodes based on its address is known as routing.

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