Ejemplo n.º 1
0
extern int launch_p_create_job_step(srun_job_t *job, bool use_all_cpus,
				    void (*signal_function)(int),
				    sig_atomic_t *destroy_job, opt_t *opt_local,
				    int pack_offset)
{
	if (opt_local->launch_cmd) {
		int i = 0;
		char *cmd_line = NULL;

		while (opt_local->argv[i])
			xstrfmtcat(cmd_line, "%s ", opt_local->argv[i++]);
		printf("%s\n", cmd_line);
		xfree(cmd_line);
		exit(0);
	}

	/* You can only run 1 job per node on a cray so make the
	   request exclusive every time. */
	opt_local->exclusive = true;
	opt_local->shared = 0;

	return launch_common_create_job_step(job, use_all_cpus,
					     signal_function,
					     destroy_job, opt_local);
}
Ejemplo n.º 2
0
extern int launch_p_create_job_step(srun_job_t *job, bool use_all_cpus,
				    void (*signal_function)(int),
				    sig_atomic_t *destroy_job)
{
	return launch_common_create_job_step(job, use_all_cpus,
					     signal_function,
					     destroy_job);
}
Ejemplo n.º 3
0
extern int launch_p_create_job_step(srun_job_t *job, bool use_all_cpus,
				    void (*signal_function)(int),
				    sig_atomic_t *destroy_job)
{
	/* set the jobid for totalview */
	totalview_jobid = NULL;
	xstrfmtcat(totalview_jobid, "%u", job->ctx_params.job_id);

	return launch_common_create_job_step(job, use_all_cpus,
					     signal_function,
					     destroy_job);
}
Ejemplo n.º 4
0
extern int launch_p_create_job_step(srun_job_t *job, bool use_all_cpus,
				    void (*signal_function)(int),
				    sig_atomic_t *destroy_job)
{
	if (launch_common_create_job_step(job, use_all_cpus,
					  signal_function,
					  destroy_job) != SLURM_SUCCESS)
		return SLURM_ERROR;

	/* set the jobid for totalview */
	totalview_jobid = NULL;
	xstrfmtcat(totalview_jobid, "%u", job->jobid);
	totalview_stepid = NULL;
	xstrfmtcat(totalview_stepid, "%u", job->stepid);

	return SLURM_SUCCESS;
}
Ejemplo n.º 5
0
extern int launch_p_create_job_step(srun_job_t *job, bool use_all_cpus,
				    void (*signal_function)(int),
				    sig_atomic_t *destroy_job)
{
	if (opt.launch_cmd) {
		int i = 0;
		char *cmd_line = NULL;

		while (opt.argv[i])
			xstrfmtcat(cmd_line, "%s ", opt.argv[i++]);
		printf("%s\n", cmd_line);
		xfree(cmd_line);
		exit(0);
	}
	return launch_common_create_job_step(job, use_all_cpus,
					     signal_function,
					     destroy_job);
}
Ejemplo n.º 6
0
extern int launch_p_create_job_step(srun_job_t *job, bool use_all_cpus,
				    void (*signal_function)(int),
				    sig_atomic_t *destroy_job)
{
	char value[32];

	/* If srun is call directly this wasn't figured out until
	   later if the user used --mem.  The problem here is this
	   will not work with --launch_cmd since that doesn't go get
	   an actual allocation (which is where pn_min_memory is decided).
	*/
	if ((opt.mem_per_cpu == NO_VAL)
	    && global_resp && (global_resp->pn_min_memory & MEM_PER_CPU)) {
		snprintf(value, sizeof(value), "%u",
			 global_resp->pn_min_memory & (~MEM_PER_CPU));
		setenv("APRUN_DEFAULT_MEMORY", value, 1);
	}

	if (opt.launch_cmd) {
		int i = 0;
		char *cmd_line = NULL;

		while (opt.argv[i])
			xstrfmtcat(cmd_line, "%s ", opt.argv[i++]);
		printf("%s\n", cmd_line);
		xfree(cmd_line);
		exit(0);
	}

	/* You can only run 1 job per node on a cray so make the
	   request exclusive every time. */
	opt.exclusive = true;
	opt.shared = 0;

	return launch_common_create_job_step(job, use_all_cpus,
					     signal_function,
					     destroy_job);
}