home *** CD-ROM | disk | FTP | other *** search
/ ftp.parl.clemson.edu / 2015-02-07.ftp.parl.clemson.edu.tar / ftp.parl.clemson.edu / pub / coven / coven-utils-1.1.tgz / coven-utils-1.1.tar / utils / coven-language / language-example.txt < prev    next >
Text File  |  2003-01-23  |  5KB  |  153 lines

  1. MODULES {
  2.         module nbody_generate_planar {
  3.             "/home/ndebard/Coven/CovenDriver/bin/modules//nbody_generate_planar.so",
  4.             const parameter int total_num_bodies,
  5.             const parameter int num_processors,
  6.             const parameter float grid_spacing,
  7.             const parameter float body_mass,
  8.             output buffer MEDEA_BODY my_bodies
  9.         }
  10.         module nbody_scatter {
  11.             "/home/ndebard/Coven/CovenDriver/bin/modules//nbody_scatter.so",
  12.             const parameter int num_slave_procs,
  13.             inout buffer MEDEA_BODY my_bodies
  14.         }
  15.         module nbody_copy_buffer {
  16.             "/home/ndebard/Coven/CovenDriver/bin/modules//nbody_copy_buffer.so",
  17.             inout buffer MEDEA_BODY my_bodies,
  18.             output buffer MEDEA_BODY shift_bodies
  19.         }
  20.         module nbody_compute_forces {
  21.             "/home/ndebard/Coven/CovenDriver/bin/modules//nbody_compute_forces.so",
  22.             const parameter float gravitational_constant,
  23.             const parameter float min_collision_distance,
  24.             const parameter float timestep,
  25.             inout buffer MEDEA_BODY my_bodies,
  26.             inout buffer MEDEA_BODY shift_bodies
  27.         }
  28.         module nbody_parallel_shift {
  29.             "/home/ndebard/Coven/CovenDriver/bin/modules//nbody_parallel_shift.so",
  30.             inout buffer MEDEA_BODY shift_bodies
  31.         }
  32.         module nbody_compute_positions {
  33.             "/home/ndebard/Coven/CovenDriver/bin/modules//nbody_compute_positions.so",
  34.             const parameter float timestep,
  35.             inout buffer MEDEA_BODY my_bodies
  36.         }
  37.         module nbody_visualize {
  38.             "/home/ndebard/Coven/CovenDriver/bin/modules//nbody_visualize.so",
  39.             const parameter float timestep,
  40.             const parameter string vis_hostname,
  41.             const parameter int vis_portnumber,
  42.             const parameter int total_num_bodies,
  43.             const parameter int num_slave_procs,
  44.             input parameter int current_iteration,
  45.             input buffer MEDEA_BODY my_bodies,
  46.             static parameter int visualization_socket
  47.         }
  48.         module nbody_gather {
  49.             "/home/ndebard/Coven/CovenDriver/bin/modules//nbody_gather.so",
  50.             const parameter int total_num_bodies,
  51.             const parameter int num_slave_procs,
  52.             input buffer MEDEA_BODY to_gather_bodies
  53.         }
  54. }
  55.  
  56. CONSTANTS {
  57.         int __total_num_bodies = 900;
  58.         int __num_processors = 2;
  59.         float __grid_spacing = 0.5;
  60.         float __body_mass = 0.05;
  61.         float __gravitational_constant = 66.73;
  62.         float __min_collision_distance = 0.01;
  63.         float __timestep = 0.001;
  64.         string __vis_hostname = "130.127.24.33";
  65.         int __vis_portnumber = 12345;
  66.         int __loop_max_iterations = 1000;
  67. }
  68.  
  69. VARIABLES {
  70.         buffer MEDEA_BODY nbody_generate_planar_my_bodies;
  71.         buffer MEDEA_BODY nbody_copy_buffer_shift_bodies;
  72.         int __visualization_socket;
  73.         int __loop_iteration;
  74.         int __loop_step;
  75. }
  76.  
  77. PROGRAM {
  78.         THREAD {
  79.             nbody_generate_planar(
  80.               __total_num_bodies,
  81.               __num_processors,
  82.               __grid_spacing,
  83.               __body_mass,
  84.               nbody_generate_planar_my_bodies
  85.             );
  86.         }
  87.         THREAD {
  88.             nbody_scatter(
  89.               __num_processors,
  90.               nbody_generate_planar_my_bodies
  91.             );
  92.         }
  93.         PARALLEL {
  94.             for(
  95.               __loop_iteration = 1;
  96.               __loop_iteration <= __loop_max_iterations;
  97.               __loop_iteration += 1)
  98.             {
  99.                 THREAD {
  100.                     nbody_copy_buffer(
  101.                       nbody_generate_planar_my_bodies,
  102.                       nbody_copy_buffer_shift_bodies
  103.                     );
  104.                 }
  105.                 for(
  106.                   __loop_step = 1;
  107.                   __loop_step <= __num_processors;
  108.                   __loop_step += 1)
  109.                 {
  110.                     THREAD {
  111.                         nbody_compute_forces(
  112.                           __gravitational_constant,
  113.                           __min_collision_distance,
  114.                           __timestep,
  115.                           nbody_generate_planar_my_bodies,
  116.                           nbody_copy_buffer_shift_bodies
  117.                         );
  118.                     }
  119.                     THREAD {
  120.                         nbody_parallel_shift(
  121.                           nbody_copy_buffer_shift_bodies
  122.                         );
  123.                     }
  124.                 }
  125.                 THREAD {
  126.                     nbody_compute_positions(
  127.                       __timestep,
  128.                       nbody_generate_planar_my_bodies
  129.                     );
  130.                 }
  131.                 THREAD {
  132.                     nbody_visualize(
  133.                       __timestep,
  134.                       __vis_hostname,
  135.                       __vis_portnumber,
  136.                       __total_num_bodies,
  137.                       __num_processors,
  138.                       __loop_iteration,
  139.                       nbody_generate_planar_my_bodies,
  140.                       __visualization_socket
  141.                     );
  142.                 }
  143.             }
  144.         }
  145.         THREAD {
  146.             nbody_gather(
  147.               __total_num_bodies,
  148.               __num_processors,
  149.               nbody_generate_planar_my_bodies
  150.             );
  151.         }
  152. }
  153.