Search in sources :

Example 36 with Location

use of com.tencent.angel.common.location.Location in project angel by Tencent.

the class InitNeighborTest2 method testCSR.

@Test
public void testCSR() throws Exception {
    Worker worker = LocalClusterContext.get().getWorker(workerAttempt0Id).getWorker();
    MatrixClient client = worker.getPSAgent().getMatrixClient(SPARSE_INT_MAT, 0);
    int matrixId = client.getMatrixId();
    ParameterServer ps = LocalClusterContext.get().getPS(psAttempt0Id).getPS();
    Location masterLoc = LocalClusterContext.get().getMaster().getAppMaster().getAppContext().getMasterService().getLocation();
    TConnection connection = TConnectionManager.getConnection(ps.getConf());
    MasterProtocol master = connection.getMasterService(masterLoc.getIp(), masterLoc.getPort());
    // Init node neighbors
    Long2ObjectOpenHashMap<long[]> nodeIdToNeighbors = new Long2ObjectOpenHashMap<>();
    nodeIdToNeighbors.put(1, new long[] { 2, 3, 4, 5, 6 });
    nodeIdToNeighbors.put(2, new long[] { 4, 5 });
    nodeIdToNeighbors.put(3, new long[] { 4, 5, 6 });
    nodeIdToNeighbors.put(4, new long[] { 5, 6 });
    nodeIdToNeighbors.put(5, new long[] { 6 });
    nodeIdToNeighbors.put(8, new long[] { 3, 4 });
    InitNeighbor func = new InitNeighbor(new InitNeighborParam(matrixId, nodeIdToNeighbors));
    client.asyncUpdate(func).get();
    nodeIdToNeighbors.clear();
    /*nodeIdToNeighbors.put(1, new long[]{4, 5, 6});
    nodeIdToNeighbors.put(2, new long[]{5});
    nodeIdToNeighbors.put(4, new long[]{5, 6});
    func = new InitNeighbor(new InitNeighborParam(matrixId, nodeIdToNeighbors));
    client.asyncUpdate(func).get();
    nodeIdToNeighbors.clear();

    nodeIdToNeighbors.put(3, new long[]{4, 5, 6});
    nodeIdToNeighbors.put(5, new long[]{6});
    nodeIdToNeighbors.put(8, new long[]{3, 4});
    func = new InitNeighbor(new InitNeighborParam(matrixId, nodeIdToNeighbors));
    client.asyncUpdate(func).get();
    nodeIdToNeighbors.clear();
    */
    // client.asyncUpdate(new InitNeighborOver(new InitNeighborOverParam(matrixId))).get();
    // Sample the neighbors
    long[] nodeIds = new long[] { 1, 2, 3, 4, 5, 6, 7, 8 };
    SampleNeighborParam param = new SampleNeighborParam(matrixId, nodeIds, 2);
    Long2ObjectOpenHashMap<long[]> result = ((SampleNeighborResult) (client.get(new SampleNeighbor(param)))).getNodeIdToNeighbors();
    ObjectIterator<Long2ObjectMap.Entry<long[]>> iter = result.long2ObjectEntrySet().fastIterator();
    LOG.info("==============================sample neighbors result============================");
    Long2ObjectMap.Entry<long[]> entry;
    while (iter.hasNext()) {
        entry = iter.next();
        LOG.info("node id = " + entry.getLongKey() + ", neighbors = " + Arrays.toString(entry.getValue()));
    }
    client.checkpoint(0).get();
    ps.stop(-1);
    PSErrorRequest request = PSErrorRequest.newBuilder().setPsAttemptId(ProtobufUtil.convertToIdProto(psAttempt0Id)).setMsg("out of memory").build();
    master.psError(null, request);
    Thread.sleep(10000);
    param = new SampleNeighborParam(matrixId, nodeIds, -1);
    result = ((SampleNeighborResult) (client.get(new SampleNeighbor(param)))).getNodeIdToNeighbors();
    iter = result.long2ObjectEntrySet().fastIterator();
    LOG.info("==============================sample neighbors result============================");
    while (iter.hasNext()) {
        entry = iter.next();
        LOG.info("node id = " + entry.getLongKey() + ", neighbors = " + Arrays.toString(entry.getValue()));
    }
}
Also used : InitNeighborParam(com.tencent.angel.graph.client.initneighbor2.InitNeighborParam) SampleNeighborResult(com.tencent.angel.graph.client.sampleneighbor2.SampleNeighborResult) Long2ObjectMap(it.unimi.dsi.fastutil.longs.Long2ObjectMap) SampleNeighbor(com.tencent.angel.graph.client.sampleneighbor2.SampleNeighbor) InitNeighbor(com.tencent.angel.graph.client.initneighbor2.InitNeighbor) Long2ObjectOpenHashMap(it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap) ParameterServer(com.tencent.angel.ps.ParameterServer) TConnection(com.tencent.angel.ipc.TConnection) SampleNeighborParam(com.tencent.angel.graph.client.sampleneighbor2.SampleNeighborParam) Worker(com.tencent.angel.worker.Worker) MatrixClient(com.tencent.angel.psagent.matrix.MatrixClient) MasterProtocol(com.tencent.angel.master.MasterProtocol) PSErrorRequest(com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSErrorRequest) Location(com.tencent.angel.common.location.Location) Test(org.junit.Test)

Example 37 with Location

use of com.tencent.angel.common.location.Location in project angel by Tencent.

the class WorkerTest method testWorker.

@Test
public void testWorker() throws Exception {
    try {
        localWorker = LocalClusterContext.get().getWorker(worker0Attempt0Id);
        worker = localWorker.getWorker();
        assertTrue(worker != null);
        // test workerId
        assertEquals(worker0Id, worker.getWorkerId());
        WorkerId wid = new WorkerId("Worker_0_0");
        assertEquals(wid, worker0Id);
        assertTrue(worker0Id.equals(wid));
        // test workerAttemptId
        assertEquals(worker0Attempt0Id, worker.getWorkerAttemptId());
        WorkerAttemptId waId = new WorkerAttemptId("WorkerAttempt_0_0_0");
        assertEquals(worker0Attempt0Id, waId);
        assertTrue(worker0Attempt0Id.equals(waId));
        assertEquals(ProtobufUtil.convertToIdProto(worker0Attempt0Id), worker.getWorkerAttemptIdProto());
        // tet worker initFinished
        assertTrue(worker.isWorkerInitFinished());
        // test worker getInitMinclock
        assertEquals(0, worker.getInitMinClock());
        // test worker loacation
        Location location = worker.getWorkerService().getLocation();
        String localIp = NetUtils.getRealLocalIP();
        assertEquals(localIp, location.getIp());
        int port = location.getPort();
        assertTrue(port > 0 && port < 655355);
    } catch (Exception x) {
        LOG.error("run testWorker failed ", x);
        throw x;
    }
}
Also used : IOException(java.io.IOException) Location(com.tencent.angel.common.location.Location) MasterServiceTest(com.tencent.angel.master.MasterServiceTest)

Example 38 with Location

use of com.tencent.angel.common.location.Location in project angel by Tencent.

the class MatrixTransportClient method closeChannelForServer.

private void closeChannelForServer(ParameterServerId serverId) {
    Location loc = PSAgentContext.get().getLocationManager().getPsLocation(serverId);
    if (loc == null) {
        return;
    }
    channelManager.removeChannelPool(loc);
}
Also used : PartitionLocation(com.tencent.angel.ml.matrix.PartitionLocation) Location(com.tencent.angel.common.location.Location)

Aggregations

Location (com.tencent.angel.common.location.Location)38 TConnection (com.tencent.angel.ipc.TConnection)12 Test (org.junit.Test)12 PSLocation (com.tencent.angel.ps.server.data.PSLocation)10 IOException (java.io.IOException)10 Worker (com.tencent.angel.worker.Worker)9 PartitionLocation (com.tencent.angel.ml.matrix.PartitionLocation)6 ServiceException (com.google.protobuf.ServiceException)5 AngelException (com.tencent.angel.exception.AngelException)5 AMTaskManager (com.tencent.angel.master.task.AMTaskManager)5 ParameterServer (com.tencent.angel.ps.ParameterServer)5 ParameterServerId (com.tencent.angel.ps.ParameterServerId)5 ApplicationId (org.apache.hadoop.yarn.api.records.ApplicationId)5 AngelApplicationMaster (com.tencent.angel.master.AngelApplicationMaster)4 ParameterServerManager (com.tencent.angel.master.ps.ParameterServerManager)4 WorkerManager (com.tencent.angel.master.worker.WorkerManager)4 MasterClient (com.tencent.angel.psagent.client.MasterClient)4 Matcher (java.util.regex.Matcher)4 Pattern (java.util.regex.Pattern)4 MasterServiceTest (com.tencent.angel.master.MasterServiceTest)3