use of edu.cmu.tetradapp.app.hpc.task.HpcJobPreProcessTask in project tetrad by cmu-phil.
the class HpcJobManager method submitNewHpcJobToQueue.
public synchronized void submitNewHpcJobToQueue(final HpcJobInfo hpcJobInfo, final GeneralAlgorithmEditor generalAlgorithmEditor) {
hpcJobInfoService.add(hpcJobInfo);
LOGGER.debug("hpcJobInfo: id: " + hpcJobInfo.getId());
HpcJobLog hpcJobLog = new HpcJobLog();
hpcJobLog.setAddedTime(new Date(System.currentTimeMillis()));
hpcJobLog.setHpcJobInfo(hpcJobInfo);
hpcJobLogService.update(hpcJobLog);
LOGGER.debug("HpcJobLog: id: " + hpcJobLog.getId());
HpcJobLogDetail hpcJobLogDetail = new HpcJobLogDetail();
hpcJobLogDetail.setAddedTime(new Date());
hpcJobLogDetail.setHpcJobLog(hpcJobLog);
// Pending
hpcJobLogDetail.setJobState(-1);
hpcJobLogDetail.setProgress("Pending");
hpcJobLogDetailService.add(hpcJobLogDetail);
LOGGER.debug("HpcJobLogDetail: id: " + hpcJobLogDetail.getId());
hpcGraphResultMap.put(hpcJobInfo, generalAlgorithmEditor);
// Put a new pre-process task into hpc job queue
HpcJobPreProcessTask preProcessTask = new HpcJobPreProcessTask(hpcJobInfo);
// Added a job to the pending list
final HpcAccount hpcAccount = hpcJobInfo.getHpcAccount();
Set<HpcJobInfo> hpcJobInfos = pendingHpcJobInfoMap.get(hpcAccount);
if (hpcJobInfos == null) {
hpcJobInfos = new LinkedHashSet<>();
}
hpcJobInfos.add(hpcJobInfo);
pendingHpcJobInfoMap.put(hpcAccount, hpcJobInfos);
executorService.execute(preProcessTask);
}
use of edu.cmu.tetradapp.app.hpc.task.HpcJobPreProcessTask in project tetrad by cmu-phil.
the class HpcJobManager method resumePreProcessJobs.
private synchronized void resumePreProcessJobs() {
// Lookup on DB for HpcJobInfo with status -1 (Pending)
List<HpcJobInfo> pendingHpcJobInfo = hpcJobInfoService.findByStatus(-1);
if (pendingHpcJobInfo != null) {
for (HpcJobInfo hpcJobInfo : pendingHpcJobInfo) {
LOGGER.debug("resumePreProcessJobs: " + hpcJobInfo.getAlgoId() + " : " + hpcJobInfo.getHpcAccount().getConnectionName() + " : " + hpcJobInfo.getAlgorithmParamRequest().getDatasetPath());
final HpcAccount hpcAccount = hpcJobInfo.getHpcAccount();
Set<HpcJobInfo> hpcJobInfos = pendingHpcJobInfoMap.get(hpcAccount);
if (hpcJobInfos == null) {
hpcJobInfos = new LinkedHashSet<>();
}
hpcJobInfos.add(hpcJobInfo);
pendingHpcJobInfoMap.put(hpcAccount, hpcJobInfos);
HpcJobPreProcessTask preProcessTask = new HpcJobPreProcessTask(hpcJobInfo);
executorService.submit(preProcessTask);
}
} else {
LOGGER.debug("resumePreProcessJobs: no pending jobs to be resumed");
}
}
Aggregations