
$Id: scenarios.txt 2987 2010-02-05 16:01:23Z martinezm $

The testing scenarios included in the 'tests' directory can be used to
execute multi-host testing for various conditions.

Scenario 1 is a simple loopback test intended to execute between 2
different hosts.

Scenario 2 is a more complex test simulating the conditions of a
simulation with state data, control data and status data all being
transferred at the same time.

Scenario 3 is a larger loopback test showing latencies when transfering
data between 3 hosts.

NOTATION:
filenames are abbreviations for the following constructs:
  scenario<i>-process<j>
with the abbreviated filenames appearing as:
  s<i>-p<j>.ini

within a file, publications and subscriptions are described.  To fully
specify these, participants and topics need to be defined as well.  If
the scenario does not require more than one of these (participants or
topics) then they may be implied in the brief synopses below.

In general the intent is to execute the different processes on different
hosts - at least to the extent that the majority of data traffic is
actually carried by a network and not transferred via the loopback
interface.

For example to run scenario 2 on 3 hosts you could execute the following
processes on each host:

  Host1: -s s2-p1.ini,s2-p5.ini
  Host2: -s s2-p2.ini,s2-p4.ini
  Host3: -s s2-p3.ini,s2-p6.ini

Or with only 2 hosts:

  Host1: -s s2-p1.ini,s2-p3.ini,s2-p5.ini
  Host2: -s s2-p2.ini,s2-p4.ini,s2-p6.ini

########################################################################
# scenario 1
#   2 processes;
#
#   Process 1:
#     p1pub1:  topic=state, size=144, max=500, min=100, dev=50, rate=1000, transport=10
#     p1subl2: topic=state, collect data, transport=11
#   Process 2:
#     p2pub1:  topic=state, source=sub1, transport=11
#     p2subl1: topic=state, transport=10
#
#   simple loopback;
#   PATHS:
#     p1pub1-->p2subl1/p2pub1-->p1subl2
#       the 1000 messages/sec rate will result in an aggregate 2000
#       messages/sec traversing the links for 2.2 Mb/s of payload traffic.
#

########################################################################
# scenario 2
#   6 processes;
#
#   Process 1:
#     p1pub1:   topic=state,   partition=link1, size=144, max=500,  min=100, dev=50,  rate=1000, priority=5,  transport=10
#     p1pub2:   topic=control, size=80,  max=120,  min=40,  dev=20,  rate=20, priority=10, transport=11
#     p1pub3:   topic=status,  size=200, max=1000, min=100, dev=500, rate=10, transport=12
#     p1sub1:   topic=control, transport=13
#     p1subl2:  topic=state,   partition=link2, transport=14
#     p1subl3:  topic=state,   partition=link3, transport=15
#     p1subl4:  topic=state,   partition=link4, transport=16
#     p1subl5:  topic=state,   partition=link5, transport=17
#     p1subl6:  topic=state,   partition=link6, transport=18
#   Process 2:
#     p2pub1:   topic=state,  partition=link2, source=p2sub1, priority=5, transport=10
#     p2pub2:   topic=status, size=200, max=1000, min=100, dev=500, rate=10, transport=11
#     p2sub1:   topic=state,  partition=link1, transport=12
#     p2sub2:   topic=control, transport=13
#   Process 3:
#     p3pub1:   topic=state,   partition=link3, source=sub5, priority=5, transport=10
#     p3pub2:   topic=control, size=80,  max=120,  min=40,  dev=20,  rate=20, priority=10, transport=11
#     p3pub3:   topic=status,  size=200, max=1000, min=100, dev=500, rate=10, transport=12
#     p3sub1:   topic=state,   partition=link2, transport=13
#     p3sub2:   topic=control, transport=14
#   Process 4:
#     p4pub1:   topic=state,   partition=link4, source=sub7, priority=5, transport=10
#     p4pub2:   topic=status,  size=200, max=1000, min=100, dev=500, rate=10, transport=11
#     p4sub1:   topic=state,   partition=link3, transport=12
#     p4sub2:   topic=control, transport=13
#     p4sub3:   topic=status,  transport=14
#   Process 5:
#     p4pub1:   topic=state,   partition=link4, source=sub7, priority=5, transport=10
#     p4pub2:   topic=control, size=80,  max=120,  min=40,  dev=20,  rate=20, priority=10, transport=11
#     p4pub3:   topic=status,  size=200, max=1000, min=100, dev=500, rate=10, transport=12
#     p4sub1:   topic=state,   partition=link3, transport=13
#     p4sub2:   topic=control, transport=14
#   Process 6:
#     p6pub1:   topic=state,   partition=link6, source=subc, priority=5, transport=10
#     p6pub2:   topic=status,  size=200, max=1000, min=100, dev=500, rate=10, transport=11
#     p6sub1:   topic=state,   partition=link5, transport=12
#     p6sub2:   topic=control, transport=13
#
#   send state data in loops through all processes;
#   PATHS:
#     p1pub1-->p2sub1/p2pub1-->p1subl2,
#     p1pub1-->p2sub1/p2pub1-->p3sub1/p3pub1-->p1subl3,
#     p1pub1-->p2sub1/p2pub1-->p3sub1/p3pub1-->p4sub1/p4pub1-->p1subl4,
#     p1pub1-->p2sub1/p2pub1-->p3sub1/p3pub1-->p4sub1/p4pub1-->p5sub1/p5pub1-->p1subl5,
#     p1pub1-->p2sub1/p2pub1-->p3sub1/p3pub1-->p4sub1/p4pub1-->p5sub1/p5pub1-->p6sub1/p6pub1-->p1subl6
#       the 1000 messages/sec rate will result in an aggregate 10000
#       messages/sec traversing the links for 11 Mb/s of payload traffic.
#
#   all processes send control data, all processes receive contol data;
#   PATHS:
#     p1pub2-->p1sub2, p1pub2-->p2sub2, p1pub2-->p3sub2, p1pub2-->p4sub2, p1pub2-->p5sub2, p1pub2-->p6sub2,
#     p2pub2-->p1sub2, p2pub2-->p2sub2, p2pub2-->p3sub2, p2pub2-->p4sub2, p2pub2-->p5sub2, p2pub2-->p6sub2,
#     p3pub2-->p1sub2, p3pub2-->p2sub2, p3pub2-->p3sub2, p3pub2-->p4sub2, p3pub2-->p5sub2, p3pub2-->p6sub2,
#     p4pub2-->p1sub2, p4pub2-->p2sub2, p4pub2-->p3sub2, p4pub2-->p4sub2, p4pub2-->p5sub2, p4pub2-->p6sub2,
#     p5pub2-->p1sub2, p5pub2-->p2sub2, p5pub2-->p3sub2, p5pub2-->p4sub2, p5pub2-->p5sub2, p5pub2-->p6sub2,
#     p6pub2-->p1sub2, p6pub2-->p2sub2, p6pub2-->p3sub2, p6pub2-->p4sub2, p6pub2-->p5sub2, p6pub2-->p6sub2
#       the 20 messages/sec rate will result in an aggregate 600
#       messages/sec traversing the links for 375 Kb/s of payload traffic,
#       not including collocated traffic.
#
#   all processes send status data, one process receives status data.
#   PATHS:
#     p1pub3-->p4sub3, p2pub2-->p4sub3, p3pub3-->p4sub3, p4pub2-->p4sub3, p5pub3-->p4sub3, p6pub2-->p4sub3
#       the 10 messages/sec rate will result in an aggregate 50
#       messages/sec traversing the links for 9.8 Kb/s of payload traffic,
#       not including collocated traffic.
#
#   An aggregate (not including collocated traffic) data rate of 11 Mb/s
#   will traverse the links during this test.
#

########################################################################
# scenario 3
#   3 processes;
#
#   Process 1:
#     p1pub1:   topic=state,   partition=link1, size=144, max=500,  min=100, dev=50,  rate=1000, priority=5,  transport=10
#     p1subl2:  topic=state,   partition=link2, transport=11
#     p1subl3:  topic=state,   partition=link3, transport=12
#   Process 2:
#     p2pub1:   topic=state, partition=link2, source=p2subl1, priority=5,  transport=10
#     p2subl1:  topic=state, partition=link1, transport=11
#   Process 3:
#     p3pub1:   topic=state, partition=link3, source=p3subl2, priority=5,  transport=10
#     p3subl2:  topic=state, partition=link2, transport=11
#
#   send state data in loops through all processes;
#   PATHS:
#     p1pub1-->p2subl1/p2pub1-->p1subl2,
#     p1pub1-->p2subl1/p2pub1-->p3subl2/p3pub1-->p1subl3
#       the 1000 messages/sec rate will result in an agregate 4000
#       messages/sec traversing the links for 4.4 Mb/s of payload traffic.
#

