Search in sources :

Example 6 with MatrixSaveContext

use of com.tencent.angel.model.MatrixSaveContext in project angel by Tencent.

the class AMModelSaver method split.

private Map<ParameterServerId, PSMatricesSaveContext> split(int requestId, ModelSaveContext saveContext) {
    List<MatrixSaveContext> matricesContext = saveContext.getMatricesContext();
    Map<ParameterServerId, List<PSMatrixSaveContext>> psIdToContextsMap = new HashMap<>();
    int size = matricesContext.size();
    for (int i = 0; i < size; i++) {
        Map<ParameterServerId, PSMatrixSaveContext> psIdToContextMap = split(matricesContext.get(i));
        for (Map.Entry<ParameterServerId, PSMatrixSaveContext> matrixEntry : psIdToContextMap.entrySet()) {
            List<PSMatrixSaveContext> contexts = psIdToContextsMap.get(matrixEntry.getKey());
            if (contexts == null) {
                contexts = new ArrayList<>();
                psIdToContextsMap.put(matrixEntry.getKey(), contexts);
            }
            contexts.add(matrixEntry.getValue());
        }
    }
    Map<ParameterServerId, PSMatricesSaveContext> ret = new HashMap<>(psIdToContextsMap.size());
    int subRequestId = 0;
    for (Map.Entry<ParameterServerId, List<PSMatrixSaveContext>> modelEntry : psIdToContextsMap.entrySet()) {
        Path psPath = new Path(new Path(new Path(saveContext.getTmpSavePath()), ModelFilesConstent.resultDirName), modelEntry.getKey().toString());
        List<PSMatrixSaveContext> psMatrixContexts = modelEntry.getValue();
        for (PSMatrixSaveContext matrixContext : psMatrixContexts) {
            matrixContext.setSavePath(new Path(psPath, context.getMatrixMetaManager().getMatrix(matrixContext.getMatrixId()).getName()).toString());
        }
        ret.put(modelEntry.getKey(), new PSMatricesSaveContext(requestId, subRequestId++, modelEntry.getValue()));
    }
    return ret;
}
Also used : Path(org.apache.hadoop.fs.Path) HashMap(java.util.HashMap) ConcurrentHashMap(java.util.concurrent.ConcurrentHashMap) PSMatrixSaveContext(com.tencent.angel.model.PSMatrixSaveContext) PSMatrixSaveContext(com.tencent.angel.model.PSMatrixSaveContext) MatrixSaveContext(com.tencent.angel.model.MatrixSaveContext) PSMatricesSaveContext(com.tencent.angel.model.PSMatricesSaveContext) ArrayList(java.util.ArrayList) List(java.util.List) ParameterServerId(com.tencent.angel.ps.ParameterServerId) HashMap(java.util.HashMap) Map(java.util.Map) ConcurrentHashMap(java.util.concurrent.ConcurrentHashMap)

Aggregations

MatrixSaveContext (com.tencent.angel.model.MatrixSaveContext)6 ModelSaveContext (com.tencent.angel.model.ModelSaveContext)4 PSMatrixSaveContext (com.tencent.angel.model.PSMatrixSaveContext)3 ArrayList (java.util.ArrayList)2 Map (java.util.Map)2 Path (org.apache.hadoop.fs.Path)2 ServiceException (com.google.protobuf.ServiceException)1 AngelException (com.tencent.angel.exception.AngelException)1 MatrixContext (com.tencent.angel.ml.matrix.MatrixContext)1 MatrixMeta (com.tencent.angel.ml.matrix.MatrixMeta)1 PSModel (com.tencent.angel.ml.model.PSModel)1 ModelSaveResult (com.tencent.angel.model.ModelSaveResult)1 PSMatricesSaveContext (com.tencent.angel.model.PSMatricesSaveContext)1 PSMatricesSaveResult (com.tencent.angel.model.PSMatricesSaveResult)1 RowIdColIdValueTextRowFormat (com.tencent.angel.model.output.format.RowIdColIdValueTextRowFormat)1 ModelSaveContextProto (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelSaveContextProto)1 ParameterServerId (com.tencent.angel.ps.ParameterServerId)1 IOException (java.io.IOException)1 HashMap (java.util.HashMap)1 LinkedHashMap (java.util.LinkedHashMap)1