コード例 #1
0
def MessageGenProcess(this):
    this.sleep(1)
    entity = this.entity
    for evt_time in xrange(1, int(endTime / 2 - 1)):
        hello_rcvr = random.choice(xrange(num_entities))
        reply_rcvr = random.choice(xrange(num_entities))
        #print evt_time,hello_rcvr,reply_rcvr
        entity.reqService(evt_time, "recv_hello", HelloMessage(reply_rcvr),
                          "Person", hello_rcvr)

        if (evt_time % 10 == 0):
            #raw_input()
            this.sleep(evt_time - this.entity.engine.now)


class dummyNode(simianEngine.Entity):
    def __init__(self, baseInfo, *args):
        super(dummyNode, self).__init__(baseInfo)
        self.createProcess("MessageGen", MessageGenProcess)
        self.startProcess("MessageGen")


for i in xrange(num_entities):
    simianEngine.addEntity("Person", Person, i, i)

simianEngine.addEntity("dummyNode", dummyNode, 0)

simianEngine.run()
simianEngine.exit()
コード例 #2
0
ファイル: phold.py プロジェクト: kishwarbd/interconnectModel
count = 4
lookahead = minDelay

def exponential(mean):
    return -math.log(random.random())/mean

class Node(simianEngine.Entity):
    def __init__(self, baseInfo, *args):
        super(Node, self).__init__(baseInfo)

    def generate(self, *args):
        targetId = random.randrange(count)
        offset = exponential(1) + lookahead

        self.out.write("Time "
                + str(self.engine.now)
                + ": Waking " + str(targetId)
                + " at " + str(offset) + " from now\n")

        self.reqService(offset, "generate", None, "Node", targetId)

for i in xrange(count):
    simianEngine.addEntity("Node", Node, i)

for i in xrange(count):
    simianEngine.schedService(0, "generate", None, "Node", i)

simianEngine.run()
simianEngine.exit()
コード例 #3
0
ファイル: cao.py プロジェクト: 5l1v3r1/PPT-1
    def notifyShareCntChange(self, jobID, nodeID):
        for i in self.nodeToExecute.keys():
            print "bb %d checking node %d" % (self.bbID, nodeID)
            procList = self.nodeToExecute[i]
            print procList
            if len(procList) > 0:
                for procName in procList:
                    procStatus = self.statusProcess(procName)
                    if procStatus == "suspended":
                        self.wakeRetval[0] = -1
                        print "waking up %s" % procName
                        self.wakeProcess(procName, *(self.wakeRetval))
        print "bb %d job %d nodeID %d notify share cnt change done" % (
            self.bbID, jobID, nodeID)

    def updateRemainIOTime(self, oldBw, remainSize, start):
        end = simEngine.now
        remain = abs(remainSize - ((end - start) * oldBw))
        newBw = self.writeBw / self.shareCnt
        newIOTime = remain / newBw
        print "new iotime %f new remain %f" % (newIOTime, remain)
        return [newIOTime, remain]


bbID = 0
args = []
args.append(bbID)
simEngine.addEntity("bb0", BBNode, 0, *args)
simEngine.run()
simEngine.exit()