Experimental Parallel Algorithmics

    Experimental Data Sets:

    Double Precision Floating Point

    Institute for Advanced Computer Studies

    University of Maryland, College Park

    Variables

    n total number of elements
    p number of processors
    i the processor number from ( 0 <= i <= p-1)
    MAX 1.7976931348623158e+308
      [U] Uniform
      [G] Gaussian
      [Z] Zero
      [B] Bucket Sorted
      [g-G] g-Group
      [S] Staggered

    [U] Uniform

    A uniformly distributed random input, obtained by calling the C library random number generator random(). This function, which returns integers in the range 0 to 2^31 - 1, is initialized by each processor i with the value (23 + 1001i). These values are ``normalized'' by first assigning the integer returned by random() a randomly chosen sign bit and then scaling the result by MAX/(2^31 - 1).

    [G] Gaussian

    A Gaussian distributed random input, approximated by adding four calls to random() and then dividing the result by four. The values are normalized in the same manner described for [U].

    [Z] Zero

    A zero entropy input, created by setting every value to a constant such as zero.

    [B] Bucket Sorted

    An input that is sorted into p buckets, obtained by setting the first n/p^2 elements at each processor to be random numbers between 0 and (MAX/p) - 1, the second n/p^2 elements at each processor to be random numbers between MAX/p and (2 × MAX/p) - 1, and so forth.

    [g-G] g-Group

    An input created by first dividing the processors into groups of consecutive processors of size g, where g can be any integer which partitions p evenly. If we index these groups in consecutive order, then for group j we set the first n/pg elements to be random numbers between ((jg + p/2) mod p) MAX/p and (((jg + p/2 + 1) mod p) MAX/p) - 1, the second n/pg elements at each processor to be random numbers between ((jg + p/2 + 1) mod p) MAX/p and (((jg + p/2 + 2) mod p) MAX/p) - 1, and so forth.

    [S] Staggered

    The Staggered Benchmark is created as follows: if the processor index i is < p/2, then we set all n/p elements at that processor to be random numbers between (2i + 1)× MAX/p and ((2i + 2)× MAX/p) - 1, and so forth. Otherwise, we set all n/p elements to be random numbers between (i - p/2) × MAX/p and ((i - p/2 + 1) × MAX/p) - 1, and so forth.

    Return to the Experimental Parallel Algorithmics Experimental Data Sets page.

    dbader@umiacs.umd.edu