use of com.tencent.angel.ml.matrix.MatrixContext in project angel by Tencent.
the class UpdateRowsTest method setup.
@Before
public void setup() throws Exception {
// set basic configuration keys
Configuration conf = new Configuration();
conf.setBoolean("mapred.mapper.new-api", true);
conf.setBoolean(AngelConf.ANGEL_JOB_OUTPUT_PATH_DELETEONEXIST, true);
conf.set(AngelConf.ANGEL_TASK_USER_TASKCLASS, DummyTask.class.getName());
// use local deploy mode and dummy dataspliter
conf.set(AngelConf.ANGEL_DEPLOY_MODE, "LOCAL");
conf.setBoolean(AngelConf.ANGEL_AM_USE_DUMMY_DATASPLITER, true);
conf.set(AngelConf.ANGEL_INPUTFORMAT_CLASS, CombineTextInputFormat.class.getName());
conf.set(AngelConf.ANGEL_SAVE_MODEL_PATH, LOCAL_FS + TMP_PATH + "/out");
conf.set(AngelConf.ANGEL_TRAIN_DATA_PATH, LOCAL_FS + TMP_PATH + "/in");
conf.set(AngelConf.ANGEL_LOG_PATH, LOCAL_FS + TMP_PATH + "/log");
conf.setInt(AngelConf.ANGEL_WORKERGROUP_NUMBER, 1);
conf.setInt(AngelConf.ANGEL_PS_NUMBER, 2);
conf.setInt(AngelConf.ANGEL_WORKER_TASK_NUMBER, 1);
conf.setInt(AngelConf.ANGEL_MODEL_PARTITIONER_PARTITION_SIZE, 1000);
conf.setBoolean("use.new.split", false);
conf.setInt(AngelConf.ANGEL_PSAGENT_CACHE_SYNC_TIMEINTERVAL_MS, 10);
conf.setInt(AngelConf.ANGEL_WORKER_HEARTBEAT_INTERVAL_MS, 1000);
conf.setInt(AngelConf.ANGEL_PS_HEARTBEAT_INTERVAL_MS, 1000);
conf.setInt(AngelConf.ANGEL_WORKER_MAX_ATTEMPTS, 1);
conf.setInt(AngelConf.ANGEL_PS_MAX_ATTEMPTS, 1);
// get a angel client
angelClient = AngelClientFactory.get(conf);
// add dense double matrix
MatrixContext dMat = new MatrixContext();
dMat.setName(DENSE_DOUBLE_MAT);
dMat.setRowNum(rowNum);
dMat.setColNum(feaNum);
dMat.setMaxRowNumInBlock(blockRowNum);
dMat.setMaxColNumInBlock(blockColNum);
dMat.setRowType(RowType.T_DOUBLE_DENSE);
dMat.setPartitionerClass(ColumnRangePartitioner.class);
angelClient.addMatrix(dMat);
// add sparse double matrix
MatrixContext sMat = new MatrixContext();
sMat.setName(SPARSE_DOUBLE_MAT);
sMat.setRowNum(rowNum);
sMat.setColNum(feaNum);
sMat.setMaxRowNumInBlock(blockRowNum);
sMat.setMaxColNumInBlock(blockColNum);
sMat.setRowType(RowType.T_DOUBLE_SPARSE);
angelClient.addMatrix(sMat);
// add dense float matrix
MatrixContext dfMat = new MatrixContext();
dfMat.setName(DENSE_FLOAT_MAT);
dfMat.setRowNum(rowNum);
dfMat.setColNum(feaNum);
dfMat.setMaxRowNumInBlock(blockRowNum);
dfMat.setMaxColNumInBlock(blockColNum);
dfMat.setRowType(RowType.T_FLOAT_DENSE);
dfMat.setPartitionerClass(ColumnRangePartitioner.class);
angelClient.addMatrix(dfMat);
// add sparse float matrix
MatrixContext sfMat = new MatrixContext();
sfMat.setName(SPARSE_FLOAT_MAT);
sfMat.setRowNum(rowNum);
sfMat.setColNum(feaNum);
sfMat.setMaxRowNumInBlock(blockRowNum);
sfMat.setMaxColNumInBlock(blockColNum);
sfMat.setRowType(RowType.T_FLOAT_SPARSE);
angelClient.addMatrix(sfMat);
// add dense float matrix
MatrixContext diMat = new MatrixContext();
diMat.setName(DENSE_INT_MAT);
diMat.setRowNum(rowNum);
diMat.setColNum(feaNum);
diMat.setMaxRowNumInBlock(blockRowNum);
diMat.setMaxColNumInBlock(blockColNum);
diMat.setRowType(RowType.T_INT_DENSE);
diMat.setPartitionerClass(ColumnRangePartitioner.class);
angelClient.addMatrix(diMat);
// add sparse float matrix
MatrixContext siMat = new MatrixContext();
siMat.setName(SPARSE_INT_MAT);
siMat.setRowNum(rowNum);
siMat.setColNum(feaNum);
siMat.setMaxRowNumInBlock(blockRowNum);
siMat.setMaxColNumInBlock(blockColNum);
siMat.setRowType(RowType.T_INT_SPARSE);
angelClient.addMatrix(siMat);
// add dense long matrix
MatrixContext dlMat = new MatrixContext();
dlMat.setName(DENSE_LONG_MAT);
dlMat.setRowNum(rowNum);
dlMat.setColNum(feaNum);
dlMat.setMaxRowNumInBlock(blockRowNum);
dlMat.setMaxColNumInBlock(blockColNum);
dlMat.setRowType(RowType.T_LONG_DENSE);
dlMat.setPartitionerClass(ColumnRangePartitioner.class);
angelClient.addMatrix(dlMat);
// add sparse long matrix
MatrixContext slMat = new MatrixContext();
slMat.setName(SPARSE_LONG_MAT);
slMat.setRowNum(rowNum);
slMat.setColNum(feaNum);
slMat.setMaxRowNumInBlock(blockRowNum);
slMat.setMaxColNumInBlock(blockColNum);
slMat.setRowType(RowType.T_LONG_SPARSE);
angelClient.addMatrix(slMat);
// add sparse long-key double matrix
MatrixContext dLongKeysMatrix = new MatrixContext();
dLongKeysMatrix.setName(SPARSE_DOUBLE_LONG_MAT);
dLongKeysMatrix.setRowNum(rowNum);
dLongKeysMatrix.setColNum(feaNum);
dLongKeysMatrix.setMaxRowNumInBlock(blockRowNum);
dLongKeysMatrix.setMaxColNumInBlock(blockColNum);
dLongKeysMatrix.setRowType(RowType.T_DOUBLE_SPARSE_LONGKEY);
angelClient.addMatrix(dLongKeysMatrix);
// add sparse long-key float matrix
MatrixContext slfMatrix = new MatrixContext();
slfMatrix.setName(SPARSE_FLOAT_LONG_MAT);
slfMatrix.setRowNum(rowNum);
slfMatrix.setColNum(feaNum);
slfMatrix.setMaxRowNumInBlock(blockRowNum);
slfMatrix.setMaxColNumInBlock(blockColNum);
slfMatrix.setRowType(RowType.T_FLOAT_SPARSE_LONGKEY);
angelClient.addMatrix(slfMatrix);
// add sparse long-key int matrix
MatrixContext sliMatrix = new MatrixContext();
sliMatrix.setName(SPARSE_INT_LONG_MAT);
sliMatrix.setRowNum(rowNum);
sliMatrix.setColNum(feaNum);
sliMatrix.setMaxRowNumInBlock(blockRowNum);
sliMatrix.setMaxColNumInBlock(blockColNum);
sliMatrix.setRowType(RowType.T_INT_SPARSE_LONGKEY);
angelClient.addMatrix(sliMatrix);
// add sparse long-key long matrix
MatrixContext sllMatrix = new MatrixContext();
sllMatrix.setName(SPARSE_LONG_LONG_MAT);
sllMatrix.setRowNum(rowNum);
sllMatrix.setColNum(feaNum);
sllMatrix.setMaxRowNumInBlock(blockRowNum);
sllMatrix.setMaxColNumInBlock(blockColNum);
sllMatrix.setRowType(RowType.T_LONG_SPARSE_LONGKEY);
angelClient.addMatrix(sllMatrix);
// Start PS
angelClient.startPSServer();
// Start to run application
angelClient.run();
Thread.sleep(5000);
psId = new ParameterServerId(0);
psAttempt0Id = new PSAttemptId(psId, 0);
WorkerGroupId workerGroupId = new WorkerGroupId(0);
workerId = new WorkerId(workerGroupId, 0);
workerAttempt0Id = new WorkerAttemptId(workerId, 0);
}
use of com.tencent.angel.ml.matrix.MatrixContext in project angel by Tencent.
the class GetRowTest method setup.
@Before
public void setup() throws Exception {
// set basic configuration keys
Configuration conf = new Configuration();
conf.setBoolean("mapred.mapper.new-api", true);
conf.setBoolean(AngelConf.ANGEL_JOB_OUTPUT_PATH_DELETEONEXIST, true);
conf.set(AngelConf.ANGEL_TASK_USER_TASKCLASS, DummyTask.class.getName());
// use local deploy mode and dummy dataspliter
conf.set(AngelConf.ANGEL_DEPLOY_MODE, "LOCAL");
conf.setBoolean(AngelConf.ANGEL_AM_USE_DUMMY_DATASPLITER, true);
conf.set(AngelConf.ANGEL_INPUTFORMAT_CLASS, CombineTextInputFormat.class.getName());
conf.set(AngelConf.ANGEL_SAVE_MODEL_PATH, LOCAL_FS + TMP_PATH + "/out");
conf.set(AngelConf.ANGEL_TRAIN_DATA_PATH, LOCAL_FS + TMP_PATH + "/in");
conf.set(AngelConf.ANGEL_LOG_PATH, LOCAL_FS + TMP_PATH + "/log");
conf.setInt(AngelConf.ANGEL_WORKERGROUP_NUMBER, 1);
conf.setInt(AngelConf.ANGEL_PS_NUMBER, 1);
conf.setInt(AngelConf.ANGEL_WORKER_TASK_NUMBER, 1);
conf.setInt(AngelConf.ANGEL_MODEL_PARTITIONER_PARTITION_SIZE, 1000);
conf.setInt(AngelConf.ANGEL_PSAGENT_CACHE_SYNC_TIMEINTERVAL_MS, 10);
conf.setInt(AngelConf.ANGEL_WORKER_HEARTBEAT_INTERVAL_MS, 1000);
conf.setInt(AngelConf.ANGEL_PS_HEARTBEAT_INTERVAL_MS, 1000);
conf.setInt(AngelConf.ANGEL_WORKER_MAX_ATTEMPTS, 1);
conf.setInt(AngelConf.ANGEL_PS_MAX_ATTEMPTS, 1);
// get a angel client
angelClient = AngelClientFactory.get(conf);
// add dense double matrix
MatrixContext dMat = new MatrixContext();
dMat.setName(DENSE_DOUBLE_MAT);
dMat.setRowNum(1);
dMat.setColNum(feaNum);
dMat.setMaxColNumInBlock(colmunSize);
dMat.setRowType(RowType.T_DOUBLE_DENSE);
dMat.setPartitionerClass(ColumnRangePartitioner.class);
angelClient.addMatrix(dMat);
// add sparse double matrix
MatrixContext sMat = new MatrixContext();
sMat.setName(SPARSE_DOUBLE_MAT);
sMat.setRowNum(1);
sMat.setColNum(feaNum);
sMat.setMaxColNumInBlock(colmunSize);
sMat.setRowType(RowType.T_DOUBLE_SPARSE);
sMat.setPartitionerClass(HashPartitioner.class);
angelClient.addMatrix(sMat);
// add dense float matrix
MatrixContext dfMat = new MatrixContext();
dfMat.setName(DENSE_FLOAT_MAT);
dfMat.setRowNum(1);
dfMat.setColNum(feaNum);
dfMat.setMaxColNumInBlock(colmunSize);
dfMat.setRowType(RowType.T_FLOAT_DENSE);
dfMat.setPartitionerClass(ColumnRangePartitioner.class);
angelClient.addMatrix(dfMat);
// add sparse float matrix
MatrixContext sfMat = new MatrixContext();
sfMat.setName(SPARSE_FLOAT_MAT);
sfMat.setRowNum(1);
sfMat.setColNum(feaNum);
sfMat.setMaxColNumInBlock(colmunSize);
sfMat.setRowType(RowType.T_FLOAT_SPARSE);
angelClient.addMatrix(sfMat);
// add dense float matrix
MatrixContext diMat = new MatrixContext();
diMat.setName(DENSE_INT_MAT);
diMat.setRowNum(1);
diMat.setColNum(feaNum);
diMat.setMaxColNumInBlock(colmunSize);
diMat.setRowType(RowType.T_INT_DENSE);
diMat.setPartitionerClass(ColumnRangePartitioner.class);
angelClient.addMatrix(diMat);
// add sparse float matrix
MatrixContext siMat = new MatrixContext();
siMat.setName(SPARSE_INT_MAT);
siMat.setRowNum(1);
siMat.setColNum(feaNum);
siMat.setMaxColNumInBlock(colmunSize);
siMat.setRowType(RowType.T_INT_SPARSE);
angelClient.addMatrix(siMat);
// add dense long matrix
MatrixContext dlMat = new MatrixContext();
dlMat.setName(DENSE_LONG_MAT);
dlMat.setRowNum(1);
dlMat.setColNum(feaNum);
dlMat.setMaxColNumInBlock(colmunSize);
dlMat.setRowType(RowType.T_LONG_DENSE);
dlMat.setPartitionerClass(ColumnRangePartitioner.class);
angelClient.addMatrix(dlMat);
// add sparse long matrix
MatrixContext slMat = new MatrixContext();
slMat.setName(SPARSE_LONG_MAT);
slMat.setRowNum(1);
slMat.setColNum(feaNum);
slMat.setMaxColNumInBlock(colmunSize);
slMat.setRowType(RowType.T_LONG_SPARSE);
angelClient.addMatrix(slMat);
// add sparse long-key double matrix
MatrixContext dLongKeysMatrix = new MatrixContext();
dLongKeysMatrix.setName(SPARSE_DOUBLE_LONG_MAT);
dLongKeysMatrix.setRowNum(1);
dLongKeysMatrix.setColNum(feaNum);
dLongKeysMatrix.setMaxColNumInBlock(colmunSize);
dLongKeysMatrix.setRowType(RowType.T_DOUBLE_SPARSE_LONGKEY);
angelClient.addMatrix(dLongKeysMatrix);
// add sparse long-key float matrix
MatrixContext slfMatrix = new MatrixContext();
slfMatrix.setName(SPARSE_FLOAT_LONG_MAT);
slfMatrix.setRowNum(1);
slfMatrix.setColNum(feaNum);
slfMatrix.setMaxColNumInBlock(colmunSize);
slfMatrix.setRowType(RowType.T_FLOAT_SPARSE_LONGKEY);
angelClient.addMatrix(slfMatrix);
// add sparse long-key int matrix
MatrixContext sliMatrix = new MatrixContext();
sliMatrix.setName(SPARSE_INT_LONG_MAT);
sliMatrix.setRowNum(1);
sliMatrix.setColNum(feaNum);
sliMatrix.setMaxColNumInBlock(colmunSize);
sliMatrix.setRowType(RowType.T_INT_SPARSE_LONGKEY);
angelClient.addMatrix(sliMatrix);
// add sparse long-key long matrix
MatrixContext sllMatrix = new MatrixContext();
sllMatrix.setName(SPARSE_LONG_LONG_MAT);
sllMatrix.setRowNum(1);
sllMatrix.setColNum(feaNum);
sllMatrix.setMaxColNumInBlock(colmunSize);
sllMatrix.setRowType(RowType.T_LONG_SPARSE_LONGKEY);
angelClient.addMatrix(sllMatrix);
// Start PS
angelClient.startPSServer();
// Start to run application
angelClient.run();
Thread.sleep(5000);
psId = new ParameterServerId(0);
psAttempt0Id = new PSAttemptId(psId, 0);
WorkerGroupId workerGroupId = new WorkerGroupId(0);
workerId = new WorkerId(workerGroupId, 0);
workerAttempt0Id = new WorkerAttemptId(workerId, 0);
}
use of com.tencent.angel.ml.matrix.MatrixContext in project angel by Tencent.
the class MatrixRowGetTest method submit.
@Override
public void submit(Configuration conf) throws Exception {
conf.setBoolean(AngelConf.ANGEL_AM_USE_DUMMY_DATASPLITER, true);
AngelClient angelClient = AngelClientFactory.get(conf);
// test the colNum is 1000000, 1 million
// rowNum = conf.getInt("row", 1);
// colNum = conf.getInt("col", 1000000);
// nnz = conf.getInt("nnz", 10000);
// blockRowNum = conf.getInt("blockRow", 1);
// blockColNum = conf.getInt("blockCol", 20000);
// rowNum = conf.getInt("row", 1);
// colNum = conf.getInt("col", 10);
// nnz = conf.getInt("nnz", 2);
// blockRowNum = conf.getInt("blockRow", 1);
// blockColNum = conf.getInt("blockCol", 10);
// add sparse longkey float matrix of 1 million
// MatrixContext dMat = new MatrixContext();
// dMat.setName(SPARSE_LONGKEY_FLOAT_MAT);
// dMat.setRowNum(rowNum);
// dMat.setColNum(colNum);
// dMat.setMaxRowNumInBlock(blockRowNum);
// dMat.setMaxColNumInBlock(blockColNum);
// dMat.setRowType(RowType.T_FLOAT_SPARSE_LONGKEY);
// dMat.set(MatrixConf.MATRIX_SAVE_PATH, conf.get("angel.save.model.path"));
// angelClient.addMatrix(dMat);
// test the colNum is Long.MAX_VALUE
rowNum = conf.getInt("row", 1);
longcolNum = conf.getLong("col", Long.MAX_VALUE);
longnnz = conf.getInt("nnz", 100000000);
blockRowNum = conf.getInt("blockRow", 1);
longBlockColNum = conf.getLong("blockCol", Long.MAX_VALUE / 200);
// add sparse longkey float matrix of Long.MAX_VALUE
MatrixContext longMat = new MatrixContext();
longMat.setName(SPARSE_LONGKEY_FLOAT_MAT);
longMat.setRowNum(rowNum);
longMat.setColNum(longcolNum);
longMat.setMaxRowNumInBlock(blockRowNum);
longMat.setMaxColNumInBlock(longBlockColNum);
longMat.setRowType(RowType.T_FLOAT_SPARSE_LONGKEY);
angelClient.addMatrix(longMat);
angelClient.startPSServer();
angelClient.run();
angelClient.waitForCompletion();
angelClient.stop(0);
}
use of com.tencent.angel.ml.matrix.MatrixContext in project angel by Tencent.
the class AngelClient method load.
public void load(Set<String> matrixNames) {
// Check need load matrices
String loadPath = conf.get(AngelConf.ANGEL_LOAD_MODEL_PATH);
if (loadPath != null && !loadPath.isEmpty()) {
ModelLoadContext loadContext = new ModelLoadContext(loadPath);
int needLoadMatrixCount = 0;
for (String name : matrixNames) {
MatrixContext matrix = nameToMatrixMap.get(name);
if (matrix.getAttributes().get(MatrixConf.MATRIX_LOAD_PATH) != null) {
loadContext.addMatrix(new MatrixLoadContext(name));
needLoadMatrixCount++;
}
}
if (needLoadMatrixCount > 0) {
load(loadContext);
}
}
}
use of com.tencent.angel.ml.matrix.MatrixContext in project angel by Tencent.
the class AngelPSClient method startPS.
/**
* Start Angel ps
*
* @return Angel ps running context
*/
public AngelContext startPS() throws AngelException {
// load user job resource files
String userResourceFiles = conf.get(AngelConf.ANGEL_APP_USER_RESOURCE_FILES);
LOG.info("userResourceFiles=" + userResourceFiles);
if (userResourceFiles != null) {
try {
ConfUtils.addResourceFiles(conf, userResourceFiles);
} catch (Throwable x) {
throw new AngelException(x);
}
}
int psNum = conf.getInt(AngelConf.ANGEL_PS_NUMBER, AngelConf.DEFAULT_ANGEL_PS_NUMBER);
if (psNum <= 0) {
throw new AngelException("Invalid parameter:Wrong ps number!");
}
conf.set(AngelConf.ANGEL_RUNNING_MODE, RunningMode.ANGEL_PS.toString());
client.addMatrix(new MatrixContext("init", 1, psNum, -1, -1, -1, 1, 1, new ArrayList<>(), RowType.T_DOUBLE_SPARSE));
client.startPSServer();
client.run();
return new AngelContext(client.getMasterLocation(), conf);
}
Aggregations