Пример #1
0
    #logging.info("WriteLoopTest1 finished")
    reset()

    #WriteLoopTest2(workerID)
    #logging.info("WriteLoopTest2 finished")
    #reset()

    WriteLoopTest3(workerID)
    #logging.info("WriteLoopTest3 finished")
    reset()

    AttributeTest1(workerID)
    #logging.info("AttributeTest1 finished")
    reset()

    ObjectAttributeTest1(workerID)
    #logging.info("ObjectAttributeTest1 finished")

    ShutdownTest(workerID)
    #logging.info("ShutdownTest finished")


try:
    PyDOOMS.execute(testSuite)

    if (PyDOOMS.getNodeID() == 0):
        logging.info("All tests passed")

except Exception as e:
    logging.exception(e)
    logging.critical("Tests failed")
Пример #2
0
        # Create regular chunks
        for i in range(0,numberOfWorkers):
            RowChunk(getChunkRowIndex(row,i+1), matrix[row][i*chunkSize + 1:i*chunkSize+chunkSize+1])

        # Last column has single element chunks
        lastColumn = matrix[row][matrixSize-1:matrixSize]

        # Pad to use it as any other chunk
        rightmostChunk = []
        rightmostChunk.append(lastColumn[0])
        for e in range(chunkSize-1):
            rightmostChunk.append(None)

        RowChunk(getChunkRowIndex(row,numberOfWorkers+1),rightmostChunk)


def generateMatrix(size):
    random_matrix = [[float(randrange(0,10)) for e in range(size)] for e in range(size)]
    return random_matrix


def printMatrix(matrix):
    for i in range(len(matrix)):
        print(str(matrix[i]))



matrixSize = 1200

PyDOOMS.execute(gaussSeidel, matrixSize)
Пример #3
0
                PyDOOMS.    objectUpdated(centerRow, "row")

            PyDOOMS.objectUpdated(workerInfo, "error")
            PyDOOMS.barrier()

        if (workerID == numberOfWorkers - 1):
            globalError = 0.0

            for w in range(numberOfWorkers):
                globalError += PyDOOMS.get(w).error

            logging.info("Iteration " + str(iteration+1) + " global error = " + str(globalError))

    logging.info("Worker: " + str(workerID) + " done in " + str(time.time() - start) + " seconds")



def generateSharedMatrixRows(matrixSize):
    for row in range(matrixOffset,matrixOffset + matrixSize):
        MatrixRow(row, [float(randrange(0,10)) for e in range(matrixSize)])

def printMatrixRows(matrixSize):
    for row in range(matrixSize):
        logging.debug(str(PyDOOMS.get(matrixOffset + row).row))


matrixSize = 1002

PyDOOMS.execute(RedBlackGaussSeidel, matrixSize)
Пример #4
0
    PyDOOMS.objectUpdated(board, "hits")
    PyDOOMS.objectUpdated(board, "darts")
    PyDOOMS.objectUpdated(board, "ready")


    PyDOOMS.barrier()

    # Sum result
    if (workerID == 0):
        pi = 0.0
        i = 0
        while i < PyDOOMS.getNumberOfWorkers():
            b = PyDOOMS.get(i)
            if b.ready:
                pi = pi + b.calc_pi()
                i = i + 1
            else:
                logging.critical("Board: " + str(i) + " - " + str(b.ready))
                time.sleep(1)

        logging.info("Pi: " + str(pi / PyDOOMS.getNumberOfWorkers()) + " calculated in " + str(time.time() - start) + " seconds.")

    logging.info("Worker: " + str(workerID) + " dead. Worked for " + str(time.time() - start) + " seconds.")



darts = 4000000 / PyDOOMS.getNumberOfWorkers()

PyDOOMS.execute(monteCarlo, darts)

Пример #5
0
                L = getMatrixBlock(LOffset, j, x)
                U = getMatrixBlock(UOffset, x, x)

                L.block = multiplyMatrix(A.block, invertMatrix(U.block))
                PyDOOMS.objectUpdated(L, "block")

        PyDOOMS.barrier()

        for j in range(x+1, blocksPerSide):
            for k in range(x+1, blocksPerSide):
                if workerID == workerList.pop():
                    logging.debug("Worker" +str(workerID) + "working on sub-block " + str(k) + str(",") + str(j))
                    A = getMatrixBlock(matrixOffset, k, j)
                    L = getMatrixBlock(LOffset, k, x)
                    U = getMatrixBlock(UOffset, x, j)

                    A.block = subtractMatrix(A.block, multiplyMatrix(L.block, U.block))
                    PyDOOMS.objectUpdated(A, "block")

        PyDOOMS.barrier()

    if workerID == 0:
        print "Done in ", time.time() - start, "seconds."
        #multiplyLU()



workerList = workerList(size)

PyDOOMS.execute(LUdecomp)