public override bool Mathces(Task task)
        {
            if (task.Package.ToUpperInvariant() == "DALTON")
                return true;

            return false;
        }
Example #2
0
        public Task(Task otherTask)
            : base(otherTask)
        {
            if (otherTask.OutputParams != null)
                OutputParams = new Dictionary<string, string>(otherTask.OutputParams);

            if (otherTask.PackageEngineState != null)
                this.PackageEngineState = (PackageEngineState) otherTask.PackageEngineState.Clone();

            Time = new TaskTimeMeasurement(otherTask.Time);
            Incarnation = new IncarnationParams(otherTask.Incarnation);

            if (otherTask.Estimations != null)
                Estimations = new Dictionary<string, double>(otherTask.Estimations);

            CurrentSchedule = null;
            if (otherTask.CurrentSchedule != null)
            {
                CurrentSchedule = new TaskSchedule(otherTask.CurrentSchedule);

                // immutable:
                this.AssignedResource = otherTask.AssignedResource;
                this.AssignedNodes = otherTask.AssignedNodes;
            }

            State = otherTask.State;

            _inputsProcessed = otherTask._inputsProcessed;
            _inputsProcessingError = otherTask._inputsProcessingError;

            _failReason = otherTask._failReason;
            if (otherTask._lastEvent != null && otherTask._lastEvent.HasValue)
                _lastEvent = otherTask._lastEvent.Value;
        }
Example #3
0
        public override bool Mathces(Task task)
        {
            if (task.AssignedTo.ProviderName == CONST.Providers.WinPc)
                return true;

            return false;
        }
Example #4
0
        public override bool Mathces(Task task)
        {
            if (task.Package.ToUpperInvariant() == PACK_NANOFLOW)
                return true;

            return false;
        }
        public override void UploadAndPrepareInputFiles(Task task, string ftpFolder)
        {
            var xyzInputFile = task.InputFiles[0]; // the only input

            string xyzMoleculeDescription = IOProxy.Storage.GetContent(xyzInputFile.StorageId);
            string properMoleculeDescription = GetProperMoleculeDescription(XyzToAtmos(xyzMoleculeDescription));

            var paramsDictRaw = new Dictionary<string, string>();
            paramsDictRaw.Add(ATOMS_COUNT_PARAM_NAME, _atomsCount.ToString());
            int procsCount = task.AssignedTo.Cores.Aggregate((cur, next) => cur + next);
            paramsDictRaw.Add(PROCS_COUNT_PARAM_NAME, procsCount.ToString());
            foreach (var paramName in task.Params.Keys)
                paramsDictRaw.Add(paramName, task.Params[paramName]);

            ModifyParams(paramsDictRaw);

            var paramsDict = new Dictionary<string, string>();
            foreach (string paramName in paramsDictRaw.Keys)
            {
                string paramValue = paramsDictRaw[paramName];

                paramsDict[paramName] = paramValue;
                paramsDict[paramName + "=" + paramValue] = paramName + "=" + paramValue;
            }

            string template = GetInputFileTemplate();
            string content = template.Replace(GetTemplateParamDelim() + MOLECULE_PARAM_NAME + GetTemplateParamDelim(), properMoleculeDescription);
            content = InsertParams(content, paramsDict);
            content = content.Replace("\r\n", "\n");
            IOProxy.Ftp.UploadFileContent(content, ftpFolder, GetInputFileNameWithExtension());
        }
        public override bool Mathces(Task task)
        {
            string pack = task.Package.ToUpperInvariant();
            if (pack == "MD_KMC" || pack == "MD-KMC" || pack == "MDKMC")
                return true;

            return false;
        }
Example #7
0
        public override void OnStart(Task task, string ftpFolder)
        {
            var provider = Broker.ProviderByName(CONST.Providers.Metacluster);
            string providedTaskId = task.TaskId.ToString();

            task.Incarnation.ProvidedTaskId = providedTaskId;
            //task.Incarnation.InputFolderPath = provider.GetFtpInputFolder(providedTaskId);
            //task.Incarnation.OutputFolderPath = provider.GetFtpOutputFolder(providedTaskId);
        }
Example #8
0
        public override void OnStart(Task task, string ftpFolder)
        {
            var provider = Broker.ProviderByName(CONST.Providers.WinPc);
            string providedTaskId = task.TaskId.ToString();

            task.Incarnation.ProvidedTaskId = providedTaskId;

            IOProxy.Ftp.MakePath(ftpFolder);
            //task.Incarnation.InputFolderPath = WinPcProvider.FTP_FOLDER + providedTaskId + "/in/";
            //task.Incarnation.OutputFolderPath = WinPcProvider.FTP_FOLDER + providedTaskId + "/out/";
        }
Example #9
0
        public override void SetIncarnationParams(Task task)
        {
            string outputFileName = DEFAULT_OUTPUT_NAME + OUTPUT_FILE_EXT;
            if (task.OutputFiles != null && task.OutputFiles.Any(f => f.FileName.EndsWith(OUTPUT_FILE_EXT)))
                outputFileName = task.OutputFiles.First(file => file.FileName.EndsWith(OUTPUT_FILE_EXT)).FileName;

            string cmdLine = "zindo1.sh";
            cmdLine += " " + GetInputFileNameWithExtension();
            cmdLine += " " + outputFileName; // with extension
            cmdLine += " " + Path.GetFileNameWithoutExtension(outputFileName) + TMP_FILE_EXT;
            task.Incarnation.CommandLine = cmdLine;

            //task.Incarnation.PackageNameInConfig = PACK_SEMP;
        }
Example #10
0
        public override void SetIncarnationParams(Task task)
        {
            string outputFileName = DEFAULT_OUTPUT_NAME + OUTPUT_FILE_EXT;
            if (task.OutputFiles != null && task.OutputFiles.Any(f => f.FileName.EndsWith(OUTPUT_FILE_EXT)))
                outputFileName = task.OutputFiles.First(file => file.FileName.EndsWith(OUTPUT_FILE_EXT)).FileName;

            string cmdLine = "gms";
            cmdLine += " " + GetInputFileNameWithExtension();
            cmdLine += " " + outputFileName;

            task.Incarnation.CommandLine = cmdLine;
            //task.Incarnation.StdOutFile = "";
            //task.Incarnation.PackageNameInConfig = PACK_GAMESS;
        }
Example #11
0
        public override void UploadAndPrepareInputFiles(Task task, string ftpFolder)
        {
            IOProxy.Ftp.MakeFolder(ftpFolder, "IO");
            ftpFolder += "IO/";

            foreach (string fileName in CONST.Path.Templates.NanoFlowConstFiles)
                IOProxy.Ftp.UploadLocalFile(fileName, ftpFolder, Path.GetFileName(fileName));

            foreach (var file in task.InputFiles)
            {
                byte[] bytes = IOProxy.Storage.GetBinaryContent(file.StorageId);
                IOProxy.Ftp.UploadFileContent(bytes, ftpFolder, file.FileName);
            }

            string content = File.ReadAllText(CONST.Path.Templates.NanoFlow);
            var applicableParamsNames = task.Params.Keys.Where(key => task.Params[key] != null);
            foreach (var paramName in applicableParamsNames)
            {
                Regex regex = new Regex(
                    "(?<=" +
                    // перед искомым должно идти нижеследующее:
                        paramName +
                        @"[^=]*" + // сколько угодно символов, которые не "="
                        @"=" +
                        @"\s*" + // сколько угодно пробельных символов
                         "\"" + // кавычка
                    ")"

                    // собственно, ищем сколько угодно не кавычек:
                    + "[^\"]*" +

                    "(?=" +
                    // после искомого должно идти нижеследующее:
                         "\"" + // кавычка
                        @"\s*" + // сколько угодно пробельных символов
                        @";" +
                    ")"
                );

                content = regex.Replace(content, task.Params[paramName]);
            }

            IOProxy.Ftp.UploadFileContent(content, ftpFolder, Path.GetFileName(CONST.Path.Templates.NanoFlow));
        }
Example #12
0
 public override void SetIncarnationParams(Task task)
 {
     SetCommandLine(task, "runOMP.sh");
     //task.Incarnation.PackageNameInConfig = "PLASMON";
 }
Example #13
0
 public override void UploadAndPrepareInputFiles(Task task, string ftpFolder)
 {
     foreach (var file in task.InputFiles)
         IOProxy.Storage.MoveOutside(file.StorageId, ftpFolder + file.FileName);
 }
Example #14
0
 public override void SetIncarnationParams(Task task)
 {
     task.Incarnation.CommandLine = String.Format("dalton {0}", Path.GetFileNameWithoutExtension(task.InputFiles[0].FileName));
     //task.Incarnation.PackageNameInConfig = "DALTON";
 }
Example #15
0
 public override void UploadAndPrepareInputFiles(Task task, string ftpFolder)
 {
     base.UploadAndPrepareInputFiles(task, ftpFolder);
     IOProxy.Ftp.UploadLocalFile(CONST.Path.Templates.PlasmonInitialSpectr, ftpFolder, Path.GetFileName(CONST.Path.Templates.PlasmonInitialSpectr));
 }
Example #16
0
 public override void SetIncarnationParams(Task task)
 {
     task.Incarnation.CommandLine = String.Format("runMpi.sh {0}", task.InputFiles[0].FileName);
     //task.Incarnation.PackageNameInConfig = "BELMAN";
 }
Example #17
0
        public override void OnFinish(Task task, string ftpFolder)
        {
            const int MAX_ATTEMPTS = 3;

            foreach (string paramName in task.Params.Keys)
            {
                if (paramName.ToLower() == "osc_freq")
                {
                    bool succeeded = false;
                    Exception lastException = null;
                    for (int attemptNum = 0; !succeeded && attemptNum < MAX_ATTEMPTS; attemptNum++)
                    {
                        try
                        {
                            var singleOutputFile = task.OutputFiles.Last(file => file.FileName.EndsWith(OUTPUT_FILE_EXT));

                            string fileName = Path.GetFileName(singleOutputFile.FileName);
                            string folderName = ftpFolder + Path.GetDirectoryName(singleOutputFile.FileName);
                            if (!folderName.EndsWith("/"))
                                folderName += "/";

                            string content = IOProxy.Ftp.DownloadFileContent(folderName, fileName);

                            double[] values = ExtractValues(content);
                            double[] intervals = GetIntervals();
                            int[] freqs = CalcFreqs(intervals, values);

                            var writer = new StringWriter();
                            writer.WriteLine("Density of phonon (vibration) states (doubled)");
                            for (int i = 0; i < freqs.Length; i++)
                                writer.WriteLine("{0,4}-{1,-4} {2,4} {3}", intervals[i], intervals[i + 1], (intervals[i] + intervals[i + 1]) / 2, freqs[i]);
                            writer.Close();

                            IOProxy.Ftp.UploadFileContent(writer.ToString(), folderName, "phonon.hist");

                            succeeded = true;
                        }
                        catch (Exception e)
                        {
                            lastException = e;
                        }
                    }

                    if (!succeeded)
                        throw lastException;
                }
            }

            base.OnFinish(task, ftpFolder);
        }
Example #18
0
 public override void SetIncarnationParams(Task task)
 {
     int coresCount = task.AssignedTo.Cores.Sum();
     task.Incarnation.CommandLine = String.Format("mpirun {0} NanoFlow", coresCount);
     //task.Incarnation.PackageNameInConfig = PACK_NANOFLOW;
 }
Example #19
0
        public override void UploadAndPrepareInputFiles(Task task, string ftpFolder)
        {
            base.UploadAndPrepareInputFiles(task, ftpFolder);

            string content = File.ReadAllText(CONST.Path.Templates.NTDMFT);
            IOProxy.Ftp.UploadFileContent(content, ftpFolder, Path.GetFileName(CONST.Path.Templates.NTDMFT));
        }
Example #20
0
 public override void SetIncarnationParams(Task task)
 {
     int coresCount = task.AssignedTo.Cores.Sum();
     task.Incarnation.CommandLine = String.Format("mpirun {0} spfemwSEPA.out spfemwSEPA.list", coresCount);
     //task.Incarnation.PackageNameInConfig = "NTDMFT";
 }
Example #21
0
 public override void SetIncarnationParams(Task task)
 {
     task.Incarnation.CommandLine = String.Format("naen");
     //task.Incarnation.PackageNameInConfig = "NAEN";
 }
Example #22
0
 public override void UploadAndPrepareInputFiles(Task task, string ftpFolder)
 {
     base.UploadAndPrepareInputFiles(task, ftpFolder);
     IOProxy.Storage.MoveOutside(task.InputFiles[0].StorageId, ftpFolder + "QDLaser.bin");
 }
Example #23
0
        public override void UploadAndPrepareInputFiles(Task task, string ftpFolder)
        {
            if (String.IsNullOrEmpty(task.Params[CONST.Params.Method]))
                task.Params.Remove(CONST.Params.Method);

            _commandLineParams = new List<string>();

            IOProxy.Ftp.MakeFolder(ftpFolder, "Graphs");

            string templateFilePath = GetTemplateFilePath();
            string content = File.ReadAllText(templateFilePath);

            foreach (string paramName in task.Params.Keys)
            {
                string paramValue = task.Params[paramName];
                if (paramValue.ToLower() == "true")
                    paramValue = "T";
                else
                if (paramValue.ToLower() == "false")
                    paramValue = "F";

                Regex regex = new Regex(
                    "(?<=" +
                    // до имени параметра не должно быть никаких символов:
                        @"[^\S]" +
                    // перед искомым должно идти нижеследующее:
                        paramName.ToUpper() +
                        @"\s*" + // сколько угодно пробельных символов
                         "=" +
                        @"\s*" + // сколько угодно пробельных символов
                    ")"

                    // собственно, ищем сколько угодно не запятых и не пробелов:
                    + @"[^,\s]*" +

                    "(?=" +
                    // после искомого должно идти нижеследующее:
                        @"\s*" + // сколько угодно пробельных символов
                         "[,/]" +
                    ")"
                );

                if (regex.IsMatch(content))
                    content = regex.Replace(content, paramValue);
                else
                    _commandLineParams.Add(paramName + "=" + paramValue);

            }

            string fileName = Path.GetFileName(templateFilePath);
            IOProxy.Ftp.UploadFileContent(content, ftpFolder, fileName);
        }
Example #24
0
 public override void OnFinish(Task task, string ftpFolder)
 {
 }
Example #25
0
 public override void OnFinish(Task task, string ftpFolder)
 {
     // todo : directly copy files to/from clusters
 }
Example #26
0
 public override void SetIncarnationParams(Task task)
 {
     int coresCount = task.AssignedTo.Cores.Sum();
     task.Incarnation.CommandLine = String.Format("mpirun {0} mdkmc.x", coresCount);
     //task.Incarnation.PackageNameInConfig = "MD-KMC";
 }
Example #27
0
 public override void SetIncarnationParams(Task task)
 {
     SetCommandLine(task, "runMPI.sh");
     //task.Incarnation.PackageNameInConfig = "JAGGREGATE";
 }
Example #28
0
 public override void SetIncarnationParams(Task task)
 {
     task.Incarnation.CommandLine = String.Format(
         //"ntestp.sh {3} {0} {1} {2}",
         "TESTP {3} {0} {1} {2}",
         task.InputFiles[0].FileName,
         task.InputFiles[1].FileName,
         (!String.IsNullOrEmpty(task.OutputFiles[0].FileName))?
             task.OutputFiles[0].FileName:
             task.OutputFiles[0].SlotName,
         task.Params["operation"]
     );
     //task.Incarnation.PackageNameInConfig = "TESTP";
 }
Example #29
0
 public override void SetIncarnationParams(Task task)
 {
     int coresCount = task.AssignedTo.Cores.Sum();
     task.Incarnation.CommandLine = String.Format("mpirun -np {0} MC", coresCount);
     //task.Incarnation.PackageNameInConfig = "UPCONVERSION";
 }
 public override void OnManualStart(Task task, string ftpFolder)
 {
     task.InputFiles[0].FileName = GetInputFileNameWithExtension();
     base.OnManualStart(task, ftpFolder);
 }