src/parasol/para/para.c 1.107
1.107 2009/12/04 23:50:23 markd
added -cpu and -ram to the parasol add jobs command
Index: src/parasol/para/para.c
===================================================================
RCS file: /projects/compbio/cvsroot/kent/src/parasol/para/para.c,v
retrieving revision 1.106
retrieving revision 1.107
diff -b -B -U 4 -r1.106 -r1.107
--- src/parasol/para/para.c 3 Sep 2008 21:13:03 -0000 1.106
+++ src/parasol/para/para.c 4 Dec 2009 23:50:23 -0000 1.107
@@ -291,42 +291,8 @@
return jaCrashed;
}
-long long parseRam(char *ram)
-/* Parse RAM expression like 2000000, 2t, 2g, 2m, 2k
- * Returns long long number of bytes, or -1 for error
- * The value of input variable ram may be modified. */
-{
-long long result = -1, factor = 1;
-int len = strlen(ram);
-int i;
-char saveC = ' ';
-if (len == 0)
- return result;
-if (ram[len-1] == 't')
- factor = (long long)1024 * 1024 * 1024 * 1024;
-else if (ram[len-1] == 'g')
- factor = 1024 * 1024 * 1024;
-else if (ram[len-1] == 'm')
- factor = 1024 * 1024;
-else if (ram[len-1] == 'k')
- factor = 1024;
-if (factor != 1)
- {
- --len;
- saveC = ram[len];
- ram[len] = 0;
- }
-for (i=0; i<len; ++i)
- if (!isdigit(ram[i]))
- return result;
-result = factor * sqlLongLong(ram);
-if (factor != 1)
- ram[len] = saveC;
-return result;
-}
-
char *useWhats[] = {"cpu", "ram"};
void parseUsage(struct job* job, struct lineFile *lf)
/* Parse out and keep CPU and RAM usage from the job command. */
@@ -369,9 +335,9 @@
job->cpusUsed = sqlFloat(parts[2]);
}
if (sameString(parts[1], "ram"))
{
- job->ramUsed = parseRam(parts[2]);
+ job->ramUsed = paraParseRam(parts[2]);
if (job->ramUsed == -1)
errAbort("Invalid RAM expression '%s' in 'use' clause line %d of %s",
parts[2], lf->lineIx, lf->fileName);
}
@@ -2170,9 +2136,9 @@
fprintf(stderr, "note: the -eta option is no longer required\n");
cpuUsage = optionFloat("cpu", cpuUsage);
if (cpuUsage < 0)
usage();
-ramUsage = parseRam(optionVal("ram","0"));
+ramUsage = paraParseRam(optionVal("ram","0"));
if (ramUsage == -1)
usage();
batchDir = determineCwdOptDir("batch");
jobCwd = determineCwdOptDir("jobCwd");