From 9b4d7bd790f15135a470a22ee2c6b6a93c2a3f8f Mon Sep 17 00:00:00 2001 From: "W. Trevor King" Date: Tue, 14 Sep 2010 11:03:55 -0400 Subject: [PATCH] Convert tree_broadcast.pdf assigment to XHTML. --- .../archive/tree_broadcast.pdf/assigment.pdf | Bin 22256 -> 0 bytes .../archive/tree_broadcast/index.shtml | 96 +++++++----------- .../tree_broadcast/index.shtml.2007.10.shtml | 83 +++++++++++++++ assignments/current/4 | 2 +- assignments/index.shtml | 2 +- 5 files changed, 122 insertions(+), 61 deletions(-) delete mode 100644 assignments/archive/tree_broadcast.pdf/assigment.pdf create mode 100644 assignments/archive/tree_broadcast/index.shtml.2007.10.shtml diff --git a/assignments/archive/tree_broadcast.pdf/assigment.pdf b/assignments/archive/tree_broadcast.pdf/assigment.pdf deleted file mode 100644 index 5cdd7585668a4f77e6f2e01833541ce1de5d85c2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22256 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 -

Assignment #3

-

Due Friday, October 26, 2007

+

Assignment #4

+

Due Friday, October 23, 2009

Purpose

-

To learn how to implement truly parallel algorithms.

+

Learn how to implement a truly parallel algorithm.

-

Setup

+

Note: Please identify all your work.

This assignment consists in building your own broadcast code based -on a binary tree. The code print_tree.c +on a binary tree. The code +print_tree.c provides a simple implementation of a binary tree based on node zero as being the root. It generates the node numbers from which any node is to receive the information and to which to send this information.

-

To do

+

Part A

-

Part A

+

Write a function My_Bcast() that performs a broadcast +similar as the one provided by MPICH2. It should follow the same +syntax as MPI_Bcast(), namely

-
    -
  1. Build a broadcast function based on the skeleton code - print_tree.c.
  2. -
  3. Call this function my_broadcast() with a calling - sequence -
    int my_broadcast( int my_rank, int size, int root, double *msg, int count )
    - In other words, restrict it to only double data type for - simplicity and to root pointing to node 0 only (via - an if ( )).
  4. -
  5. Move the inner parts of the loop - in print_tree.c over to a function - my_broadcast (still in a serial code).
  6. -
  7. Use an integer array target[] created by - malloc() to store the list of to target - nodes.
  8. -
  9. Include the MPI administrative calls - (MPI_Init(), - MPI_Comm_size(), - MPI_Comm_rank(), - MPI_Finalize()), and use the actual size and - rank of the virtual machine instead for the loop - over rank.
  10. -
  11. Implement the send and receive routines (MPI_Recv() and - MPI_Ssend()) to receive and transmit the message.
  12. -
  13. Put printf() statements in the main program to - check that the code is working correctly.
  14. -
+
+int My Bcast(void *buffer, int count, MPI Datatype datatype, int root,
+             MPI Comm comm)
+
-

Part B

+

This function should be based on the skeleton +code print_tree.c. It should therefore assume that root +is process zero (0). If not, it should print out an error message +quoting this fact and return an exit code one (1).

-

Use MPI_Wtime() to time three ways of "broadcasting" a -message:

-
    -
  1. Using a for loop over the nodes to send the message - from the root node to the other nodes.
  2. -
  3. Using my_broadcast().
  4. -
  5. Using MPI_Bcast().
  6. -
+

Test your routine carefully for various process numbers and +different count and datatype in the call.

-

To do so, send a message of some length (at least 1000, 5000 and -10000 double — filled with random numbers) over and over again -100 times (using a for loop) to have good time -statistics. Print the average of the times for each broadcast -methods.

+

Part B

-

Part C

+

Instrument your code for timing measurements. Modify your main code +to broadcast the information three (3) different ways:

-

Modify your function my_broadcast() to broadcast from -an arbitrary root node, namely

    -
  1. Modify the algorithm (explain what you will implement).
  2. -
  3. Modify print_tree.c accordingly.
  4. -
  5. Modify my_broadcast() accordingly.
  6. -
  7. Fully check that my_broadcast() works properly by - inserting appropriate printf() in the main program and - running the code for different number of processes and - root.
  8. -
  9. Repeat the timing study in part B for this new function.
  10. +
  11. sequentially via a for loop,
  12. +
  13. via your My_Bcast(), and
  14. +
  15. via the MPICH2 MPI_Bcast().
+

Broadcast 10,000 integers 100 times and take an average over the +100 broadcasts to smooth out the time fluctuations. Repeat for 10,000 +double. Tabulate your timings and comment on the results.

+ +

Part C

+ +

Modify My_Bcast() to be able to broadcast from any +process (the root process) within the virtual machine. Check your code +carefully for different root processes and various number of +processes.

+ diff --git a/assignments/archive/tree_broadcast/index.shtml.2007.10.shtml b/assignments/archive/tree_broadcast/index.shtml.2007.10.shtml new file mode 100644 index 0000000..81b8e1b --- /dev/null +++ b/assignments/archive/tree_broadcast/index.shtml.2007.10.shtml @@ -0,0 +1,83 @@ + + +

Assignment #3

+

Due Friday, October 26, 2007

+ +

Purpose

+ +

To learn how to implement truly parallel algorithms.

+ +

Setup

+ +

This assignment consists in building your own broadcast code based +on a binary tree. The code print_tree.c +provides a simple implementation of a binary tree based on node zero +as being the root. It generates the node numbers from which any node +is to receive the information and to which to send this +information.

+ +

To do

+ +

Part A

+ +
    +
  1. Build a broadcast function based on the skeleton code + print_tree.c.
  2. +
  3. Call this function my_broadcast() with a calling + sequence +
    int my_broadcast( int my_rank, int size, int root, double *msg, int count )
    + In other words, restrict it to only double data type for + simplicity and to root pointing to node 0 only (via + an if ( )).
  4. +
  5. Move the inner parts of the loop + in print_tree.c over to a function + my_broadcast (still in a serial code).
  6. +
  7. Use an integer array target[] created by + malloc() to store the list of to target + nodes.
  8. +
  9. Include the MPI administrative calls + (MPI_Init(), + MPI_Comm_size(), + MPI_Comm_rank(), + MPI_Finalize()), and use the actual size and + rank of the virtual machine instead for the loop + over rank.
  10. +
  11. Implement the send and receive routines (MPI_Recv() and + MPI_Ssend()) to receive and transmit the message.
  12. +
  13. Put printf() statements in the main program to + check that the code is working correctly.
  14. +
+ +

Part B

+ +

Use MPI_Wtime() to time three ways of "broadcasting" a +message:

+
    +
  1. Using a for loop over the nodes to send the message + from the root node to the other nodes.
  2. +
  3. Using my_broadcast().
  4. +
  5. Using MPI_Bcast().
  6. +
+ +

To do so, send a message of some length (at least 1000, 5000 and +10000 double — filled with random numbers) over and over again +100 times (using a for loop) to have good time +statistics. Print the average of the times for each broadcast +methods.

+ +

Part C

+ +

Modify your function my_broadcast() to broadcast from +an arbitrary root node, namely

+
    +
  1. Modify the algorithm (explain what you will implement).
  2. +
  3. Modify print_tree.c accordingly.
  4. +
  5. Modify my_broadcast() accordingly.
  6. +
  7. Fully check that my_broadcast() works properly by + inserting appropriate printf() in the main program and + running the code for different number of processes and + root.
  8. +
  9. Repeat the timing study in part B for this new function.
  10. +
+ + diff --git a/assignments/current/4 b/assignments/current/4 index 80de2c0..840a651 120000 --- a/assignments/current/4 +++ b/assignments/current/4 @@ -1 +1 @@ -../archive/tree_broadcast.pdf/ \ No newline at end of file +../archive/tree_broadcast/ \ No newline at end of file diff --git a/assignments/index.shtml b/assignments/index.shtml index eb057db..bb3ab1a 100644 --- a/assignments/index.shtml +++ b/assignments/index.shtml @@ -6,7 +6,7 @@
  • Assignment 1
  • Assignment 2
  • Assignment 3
  • -
  • Assignment 4
  • +
  • Assignment 4
  • Assignment 5
  • Assignment 6
  • Assignment 7
  • -- 2.26.2