Download pseudo source code

procedure main(argc, argv[]):
  declare constant my_lucky_number = random(0, 100)
  print("Process ", process_number, ": my lucky number is ", my_lucky_number)

  declare all_min := -1
  declare all_max := -1
  declare all_sum := -1

  // Reduce the data value from all processes to a single result value that will
  // be available in all processes
  all_reduce(my_lucky_number, &all_min, 1, min)
  all_reduce(my_lucky_number, &all_max, 1, max)
  all_reduce(my_lucky_number, &all_sum, 1, sum)

  declare constant all_average = all_sum / process_count
  if my_lucky_number = all_min then
    print("Process ", process_number, ": my lucky number (", my_lucky_number
      , ") is the minimum (", all_min, ")")
  end if

  if my_lucky_number < all_average then
    print("Process ", process_number, ": my lucky number (", my_lucky_number
     , ") is less than the average (", all_average, ")")
  else if my_lucky_number > all_average then
    print("Process ", process_number, ": my lucky number (", my_lucky_number
     , ") is greater than the average (", all_average, ")")
  else
    print("Process ", process_number, ": my lucky number (", my_lucky_number
     , ") is equal to the average (", all_average, ")")
  end if

  if my_lucky_number = all_max then
    print("Process ", process_number, ": my lucky number (", my_lucky_number
     , ") is the maximum (", all_max, ")")
  end if
end procedure