Esempio n. 1
0
from pacman.model.graphs.machine import MachineEdge

from pkt_injector_vertex import Pkt_Injector_Vertex
from pkt_extractor_vertex import Pkt_Extractor_Vertex

NUM_INJECTORS = 9

gfe.setup(machine_time_step=1000000,
          n_chips_required=1,
          model_binary_folder=os.path.dirname(__file__))

# instantiate injector vertices
injectors = []
for i in range(NUM_INJECTORS):
    iv = Pkt_Injector_Vertex(i)
    gfe.add_machine_vertex_instance(iv)
    injectors.append(iv)

# instantiate extractor vertices
ev = Pkt_Extractor_Vertex()
gfe.add_machine_vertex_instance(ev)

# create links from injectors to extractor
for iv in injectors:
    gfe.add_machine_edge_instance(MachineEdge(iv, ev), iv.inj_lnk)

gfe.run(10000)

gfe.stop()
Esempio n. 2
0
    (xin, yin) = INSIDE_CHIPS[n]

    # outside chip coordinates
    (xout, yout) = OUTSIDE_CHIPS[n]

    for i in range(NUM_INJECTORS_PER_CONNECTION):
        if DO_INSIDE_OUT:
            # instantiate inside-out injector vertex
            iv = Pkt_Injector_Vertex(x_coord=xin,
                                     y_coord=yin,
                                     throttle=INSIDE_INJECTOR_THROTTLE[n],
                                     use_payload=USE_PAYLOADS)
            gfe.add_machine_vertex_instance(iv)

            # instantiate inside-out extractor vertex
            ev = Pkt_Extractor_Vertex(x_coord=xout, y_coord=yout)
            gfe.add_machine_vertex_instance(ev)

            # create link from injector to extractor
            gfe.add_machine_edge_instance(MachineEdge(iv, ev), iv.inj_lnk)

        if DO_OUTSIDE_IN:
            # instantiate outside-in injector vertex
            iv = Pkt_Injector_Vertex(x_coord=xout,
                                     y_coord=yout,
                                     throttle=OUTSIDE_INJECTOR_THROTTLE[n],
                                     use_payload=USE_PAYLOADS)
            gfe.add_machine_vertex_instance(iv)

            # instantiate outside-in extractor vertex
            ev = Pkt_Extractor_Vertex(x_coord=xin, y_coord=yin)
Esempio n. 3
0
    n_chips_required = len (EXTRACTORS) + 1,
    model_binary_folder=os.path.dirname(__file__)
    )

# compute total number of extractor vertices
NUM_EXTRACTORS = 0
for chip, ne in EXTRACTORS.items():
    NUM_EXTRACTORS += ne

# instantiate injector vertex
iv = Pkt_Injector_Vertex(
    x_coord = INJECTOR[X], y_coord = INJECTOR[Y],
    nkeys = NUM_EXTRACTORS)

gfe.add_machine_vertex_instance(iv)

# instantiate extractor vertices
lnk = 0
for chip, ne in EXTRACTORS.items():
    for e in range (ne):
        ev = Pkt_Extractor_Vertex(iid = e, x_coord = chip[X], y_coord = chip[Y])
        gfe.add_machine_vertex_instance(ev)

        # create link from injector to extractor
        gfe.add_machine_edge_instance (MachineEdge (iv, ev), iv.inj_lnk[lnk])
        lnk += 1

gfe.run(10000)

gfe.stop()
Esempio n. 4
0
          model_binary_folder=os.path.dirname(__file__) + "/..")

# create connections along the border
for n in range(NUM_CHIPS):
    # instantiate inside-out injector vertex
    (xi, yi) = INSIDE_CHIPS[n]

    iv = Pkt_Injector_Vertex(x_coord=xi,
                             y_coord=yi,
                             throttle=INJECTOR_THROTTLE)

    gfe.add_machine_vertex_instance(iv)

    # instantiate inside-out extractor vertex
    (xe, ye) = OUTSIDE_CHIPS[n]
    ev = Pkt_Extractor_Vertex(x_coord=xe, y_coord=ye)
    gfe.add_machine_vertex_instance(ev)

    # create link from injector to extractor
    gfe.add_machine_edge_instance(MachineEdge(iv, ev), iv.inj_lnk)

    # instantiate outside-in injector vertex
    (xi, yi) = OUTSIDE_CHIPS[n]

    iv = Pkt_Injector_Vertex(x_coord=xi,
                             y_coord=yi,
                             throttle=INJECTOR_THROTTLE)

    gfe.add_machine_vertex_instance(iv)

    # instantiate outside-in extractor vertex
Esempio n. 5
0
import os

import spinnaker_graph_front_end as gfe

from pacman.model.graphs.machine import MachineEdge

from pkt_injector_vertex import Pkt_Injector_Vertex
from pkt_extractor_vertex import Pkt_Extractor_Vertex

gfe.setup(machine_time_step=1000000,
          n_boards_required=3,
          model_binary_folder=os.path.dirname(__file__) + "/..")

# instantiate injector vertex
iv = Pkt_Injector_Vertex(x_coord=7, y_coord=7)
gfe.add_machine_vertex_instance(iv)

# instantiate extractor vertex
ev = Pkt_Extractor_Vertex(x_coord=7, y_coord=8)
gfe.add_machine_vertex_instance(ev)

# create link from injector to extractor
gfe.add_machine_edge_instance(MachineEdge(iv, ev), iv.inj_lnk)

gfe.run(10000)

gfe.stop()
Esempio n. 6
0
# populate a line of chips
CHIPS = [(0, 3), (1, 3), (2, 3), (3, 3),
         (4, 3), (5, 3), (6, 3), (7, 3)]

# populate each chip with this number of packet injectors
NUM_INJECTORS = len (CHIPS)


gfe.setup(
    machine_time_step = 1000000,
    n_chips_required = len (CHIPS),
    model_binary_folder=os.path.dirname(__file__)
    )

for (x_coord, y_coord) in CHIPS:
    # instantiate extractor vertex on chip
    ev = Pkt_Extractor_Vertex(x_coord = x_coord, y_coord = y_coord)
    gfe.add_machine_vertex_instance(ev)

    # instantiate injector vertices on chip
    for i in range (NUM_INJECTORS):
        iv = Pkt_Injector_Vertex(i, x_coord = x_coord, y_coord = y_coord)
        gfe.add_machine_vertex_instance(iv)

        # create links from injectors to extractor on same chip
        gfe.add_machine_edge_instance (MachineEdge (iv, ev), iv.inj_lnk)

gfe.run(10000)

gfe.stop()
Esempio n. 7
0
# tuple indices for coordinates
X = 0
Y = 1

# populate this chip with a packet injector
INJECTORS = {(0, 0): 9}

# populate each chip with this number of packet extractors
EXTRACTOR = (1, 0)

gfe.setup(machine_time_step=1000000,
          n_chips_required=len(INJECTORS) + 1,
          model_binary_folder=os.path.dirname(__file__))

# instantiate extractor vertex
ev = Pkt_Extractor_Vertex(x_coord=EXTRACTOR[X], y_coord=EXTRACTOR[Y])
gfe.add_machine_vertex_instance(ev)

for chip, ni in INJECTORS.items():
    for i in range(ni):
        iv = Pkt_Injector_Vertex(iid=i, x_coord=chip[X], y_coord=chip[Y])
        gfe.add_machine_vertex_instance(iv)

        # create link from injector to extractor
        gfe.add_machine_edge_instance(MachineEdge(iv, ev), iv.inj_lnk)

gfe.run(10000)

gfe.stop()
Esempio n. 8
0
    # FY chip coordinates
    (xy, yy) = FY_CHIPS[n]

    for i in range(NUM_INJECTORS_PER_CONNECTION):
        # instantiate FX injector vertex
        iv = Pkt_Injector_Vertex(
            x_coord     = xx,
            y_coord     = yx,
            throttle    = FX_INJECTOR_THROTTLE[n],
            use_payload = USE_PAYLOADS
            )
        gfe.add_machine_vertex_instance(iv)

        # instantiate FY extractor vertex
        ev = Pkt_Extractor_Vertex(
            x_coord = xy,
            y_coord = yy
            )
        gfe.add_machine_vertex_instance(ev)

        # create link from injector to extractor
        gfe.add_machine_edge_instance(MachineEdge (iv, ev), iv.inj_lnk)

        if BIDIRECTIONAL:
            # instantiate FY injector vertex
            iv = Pkt_Injector_Vertex(
                x_coord  = xy,
                y_coord  = yy,
                throttle = FY_INJECTOR_THROTTLE[n],
                use_payload = USE_PAYLOADS
                )
            gfe.add_machine_vertex_instance(iv)