Beispiel #1
0
void dag_task_fill_resources(struct dag_node *n)
{
	struct rmsummary *rs    = n->resources;
	struct dag_lookup_set s = { n->d, n->category, n, NULL };

	char    *val_str;

	val_str = dag_lookup_str(RESOURCES_CORES, &s);
	if(val_str)
		rs->cores = atoll(val_str);

	val_str = dag_lookup_str(RESOURCES_DISK, &s);
	if(val_str)
		rs->workdir_footprint = atoll(val_str);

	val_str = dag_lookup_str(RESOURCES_MEMORY, &s);
	if(val_str)
		rs->resident_memory = atoll(val_str);

	val_str = dag_lookup_str(RESOURCES_GPUS, &s);
	if(val_str)
		rs->gpus = atoll(val_str);
}
Beispiel #2
0
void dag_parse_node_set_command(struct lexer_book *bk, struct dag_node *n, char *command)
{
	struct dag_lookup_set s = { bk->d, bk->category, n, NULL };
	char *local = dag_lookup_str("BATCH_LOCAL", &s);

	if(local) {
		if(string_istrue(local))
			n->local_job = 1;
		free(local);
	}

	n->original_command = xxstrdup(command);
	n->command = translate_command(n, command, n->local_job);
	debug(D_DEBUG, "node command=%s", n->command);
}
Beispiel #3
0
/* Constructs the dictionary of environment variables for a dag
 * */
char *dag_lookup_set(const char *name, void *arg)
{
	struct dag_lookup_set s = { (struct dag *) arg, NULL, NULL, NULL };
	return dag_lookup_str(name, &s);
}