Search in sources :

Example 31 with LongFloatVector

use of com.tencent.angel.ml.math2.vector.LongFloatVector in project angel by Tencent.

the class GetNodes method partitionGet.

@Override
public PartitionGetResult partitionGet(PartitionGetParam partParam) {
    ServerPartition part = psContext.getMatrixStorageManager().getPart(partParam.getPartKey());
    ServerRow ranks = psContext.getMatrixStorageManager().getRow(partParam.getPartKey(), 2);
    FloatVector ranksVector = ServerRowUtils.getVector((ServerLongFloatRow) ranks);
    long[] ret;
    if (ranksVector instanceof IntFloatVector)
        ret = gatherNodes((IntFloatVector) ranksVector, part.getPartitionKey().getStartCol());
    else if (ranksVector instanceof LongFloatVector)
        ret = gatherNodes((LongFloatVector) ranksVector, part.getPartitionKey().getStartCol());
    else {
        throw new AngelException("vector should be intfloat or longfloat but is " + ranksVector.getClass().getName());
    }
    return new IndexPartGetLongResult(part.getPartitionKey(), ret);
}
Also used : AngelException(com.tencent.angel.exception.AngelException) IndexPartGetLongResult(com.tencent.angel.ml.matrix.psf.get.indexed.IndexPartGetLongResult) ServerRow(com.tencent.angel.ps.storage.vector.ServerRow) IntFloatVector(com.tencent.angel.ml.math2.vector.IntFloatVector) FloatVector(com.tencent.angel.ml.math2.vector.FloatVector) LongFloatVector(com.tencent.angel.ml.math2.vector.LongFloatVector) LongFloatVector(com.tencent.angel.ml.math2.vector.LongFloatVector) ServerPartition(com.tencent.angel.ps.storage.partition.ServerPartition) IntFloatVector(com.tencent.angel.ml.math2.vector.IntFloatVector)

Example 32 with LongFloatVector

use of com.tencent.angel.ml.math2.vector.LongFloatVector in project angel by Tencent.

the class ByteBufSerdeUtils method serializeLongFloatVector.

// LongFloatVector
private static void serializeLongFloatVector(ByteBuf out, LongFloatVector vector) {
    LongFloatVectorStorage storage = vector.getStorage();
    if (storage.isSparse()) {
        serializeInt(out, SPARSE_STORAGE_TYPE);
        serializeInt(out, storage.size());
        ObjectIterator<Long2FloatMap.Entry> iter = storage.entryIterator();
        while (iter.hasNext()) {
            Long2FloatMap.Entry e = iter.next();
            serializeLong(out, e.getLongKey());
            serializeFloat(out, e.getFloatValue());
        }
    } else if (storage.isSorted()) {
        serializeInt(out, SORTED_STORAGE_TYPE);
        long[] indices = vector.getStorage().getIndices();
        float[] values = vector.getStorage().getValues();
        serializeLongs(out, indices);
        serializeFloats(out, values);
    } else {
        throw new UnsupportedOperationException("Unsupport storage type " + vector.getStorage().getClass());
    }
}
Also used : LongFloatVectorStorage(com.tencent.angel.ml.math2.storage.LongFloatVectorStorage) Entry(it.unimi.dsi.fastutil.ints.Int2DoubleMap.Entry) Long2FloatMap(it.unimi.dsi.fastutil.longs.Long2FloatMap)

Example 33 with LongFloatVector

use of com.tencent.angel.ml.math2.vector.LongFloatVector in project angel by Tencent.

the class ByteBufSerdeUtils method serializedLongFloatVectorLen.

public static int serializedLongFloatVectorLen(LongFloatVector vector) {
    int len = 0;
    LongFloatVectorStorage storage = vector.getStorage();
    if (storage.isSparse()) {
        len += serializedIntLen(SPARSE_STORAGE_TYPE);
        len += serializedIntLen(storage.size());
        len += storage.size() * (INT_LENGTH + FLOAT_LENGTH);
    } else if (storage.isSorted()) {
        len += serializedIntLen(SORTED_STORAGE_TYPE);
        len += serializedLongsLen(vector.getStorage().getIndices());
        len += serializedFloatsLen(vector.getStorage().getValues());
    } else {
        throw new UnsupportedOperationException("Unsupport storage type " + vector.getStorage().getClass());
    }
    return len;
}
Also used : LongFloatVectorStorage(com.tencent.angel.ml.math2.storage.LongFloatVectorStorage)

Example 34 with LongFloatVector

use of com.tencent.angel.ml.math2.vector.LongFloatVector in project angel by Tencent.

the class ByteBufSerdeUtils method serializeLongIntVector.

// LongFloatVector
private static void serializeLongIntVector(ByteBuf out, LongIntVector vector) {
    LongIntVectorStorage storage = vector.getStorage();
    if (storage.isSparse()) {
        serializeInt(out, SPARSE_STORAGE_TYPE);
        serializeInt(out, storage.size());
        ObjectIterator<Long2IntMap.Entry> iter = storage.entryIterator();
        while (iter.hasNext()) {
            Long2IntMap.Entry e = iter.next();
            serializeLong(out, e.getLongKey());
            serializeFloat(out, e.getIntValue());
        }
    } else if (storage.isSorted()) {
        serializeInt(out, SORTED_STORAGE_TYPE);
        long[] indices = vector.getStorage().getIndices();
        int[] values = vector.getStorage().getValues();
        serializeLongs(out, indices);
        serializeInts(out, values);
    } else {
        throw new UnsupportedOperationException("Unsupport storage type " + vector.getStorage().getClass());
    }
}
Also used : Entry(it.unimi.dsi.fastutil.ints.Int2DoubleMap.Entry) LongIntVectorStorage(com.tencent.angel.ml.math2.storage.LongIntVectorStorage) Long2IntMap(it.unimi.dsi.fastutil.longs.Long2IntMap)

Example 35 with LongFloatVector

use of com.tencent.angel.ml.math2.vector.LongFloatVector in project angel by Tencent.

the class StreamSerdeUtils method serializeLongFloatVector.

// LongFloatVector
private static void serializeLongFloatVector(DataOutputStream out, LongFloatVector vector) throws IOException {
    LongFloatVectorStorage storage = vector.getStorage();
    if (storage.isSparse()) {
        serializeInt(out, SPARSE_STORAGE_TYPE);
        serializeInt(out, storage.size());
        ObjectIterator<Long2FloatMap.Entry> iter = storage.entryIterator();
        while (iter.hasNext()) {
            Long2FloatMap.Entry e = iter.next();
            serializeLong(out, e.getLongKey());
            serializeFloat(out, e.getFloatValue());
        }
    } else if (storage.isSorted()) {
        serializeInt(out, SORTED_STORAGE_TYPE);
        long[] indices = vector.getStorage().getIndices();
        float[] values = vector.getStorage().getValues();
        serializeLongs(out, indices);
        serializeFloats(out, values);
    } else {
        throw new UnsupportedOperationException("Unsupport storage type " + vector.getStorage().getClass());
    }
}
Also used : LongFloatVectorStorage(com.tencent.angel.ml.math2.storage.LongFloatVectorStorage) Entry(it.unimi.dsi.fastutil.ints.Int2DoubleMap.Entry) Long2FloatMap(it.unimi.dsi.fastutil.longs.Long2FloatMap)

Aggregations

LongFloatVector (com.tencent.angel.ml.math2.vector.LongFloatVector)55 LongFloatVectorStorage (com.tencent.angel.ml.math2.storage.LongFloatVectorStorage)50 LongFloatSparseVectorStorage (com.tencent.angel.ml.math2.storage.LongFloatSparseVectorStorage)37 LongIntVectorStorage (com.tencent.angel.ml.math2.storage.LongIntVectorStorage)34 LongDoubleVectorStorage (com.tencent.angel.ml.math2.storage.LongDoubleVectorStorage)33 LongLongVectorStorage (com.tencent.angel.ml.math2.storage.LongLongVectorStorage)32 IntDoubleVectorStorage (com.tencent.angel.ml.math2.storage.IntDoubleVectorStorage)30 IntFloatVectorStorage (com.tencent.angel.ml.math2.storage.IntFloatVectorStorage)30 IntIntVectorStorage (com.tencent.angel.ml.math2.storage.IntIntVectorStorage)30 IntLongVectorStorage (com.tencent.angel.ml.math2.storage.IntLongVectorStorage)30 Storage (com.tencent.angel.ml.math2.storage.Storage)30 CompLongFloatVector (com.tencent.angel.ml.math2.vector.CompLongFloatVector)28 LongFloatSortedVectorStorage (com.tencent.angel.ml.math2.storage.LongFloatSortedVectorStorage)25 Long2FloatMap (it.unimi.dsi.fastutil.longs.Long2FloatMap)23 LongDoubleSparseVectorStorage (com.tencent.angel.ml.math2.storage.LongDoubleSparseVectorStorage)22 LongDoubleSortedVectorStorage (com.tencent.angel.ml.math2.storage.LongDoubleSortedVectorStorage)21 IntDoubleSortedVectorStorage (com.tencent.angel.ml.math2.storage.IntDoubleSortedVectorStorage)20 IntDoubleSparseVectorStorage (com.tencent.angel.ml.math2.storage.IntDoubleSparseVectorStorage)20 IntFloatSortedVectorStorage (com.tencent.angel.ml.math2.storage.IntFloatSortedVectorStorage)20 IntFloatSparseVectorStorage (com.tencent.angel.ml.math2.storage.IntFloatSparseVectorStorage)20