none
behavior of parametric job with /numcores differs from basic job with /numcores

    Question

  • Hello,

    I am having a run time issue with HPC. I find that to get a job to complete in a timely manner I have to submit the job with the /numcores:2

    Standalone the application would normally take 20-40% of 2 processors and complete in about 8 minutes. By specifying /numcores with a job submit it takes around the same amount of time. If I kick the job off with job submit and don't specify /numcores of 2 the job takes exponentially longer. I can see in the resource monitor that I am limited to a single processor. 

    This is a more serious problem if I try to launch the job using the parametric option. With 2 parametric jobs and /numcores:2-4 or /numcores:4-4 I see that in the resource monitor that each job only gets access to a single processor core. If I submit 1 parametric job with the same options for numcores I still only see a single core attached to a single job.

    Is there any way around this?

    Thanks,

    Albert Hook

    Thursday, January 21, 2016 9:24 PM

Answers

  • Hi Albert,

      First, you need to understand whether you application is an MPI application, whether it can make use of multi-cores.

      Secondly, without specifying numCores, by default, your job will be allocated with only 1 core as you only have one task (that's your application). In that case, you probably get 16 minutes on completion.

      Third, from your description, your application can make use of 2 cores, thus, you might create the job, add the task with the task specifying 2 cores. And you have to specify "/singlenode" option for the job as you don't want the 2 cores on different machine as your application can't run cross machine boundary.

      And specifying /2-4 or /4-4 for the job and only see one single processor core, it probably because you only have one task in the job, and by default, the task only takes one core.


    Qiufang Shi

    • Marked as answer by Albert Hook Wednesday, April 6, 2016 1:42 PM
    Friday, January 22, 2016 2:02 AM

All replies

  • Hi Albert,

      First, you need to understand whether you application is an MPI application, whether it can make use of multi-cores.

      Secondly, without specifying numCores, by default, your job will be allocated with only 1 core as you only have one task (that's your application). In that case, you probably get 16 minutes on completion.

      Third, from your description, your application can make use of 2 cores, thus, you might create the job, add the task with the task specifying 2 cores. And you have to specify "/singlenode" option for the job as you don't want the 2 cores on different machine as your application can't run cross machine boundary.

      And specifying /2-4 or /4-4 for the job and only see one single processor core, it probably because you only have one task in the job, and by default, the task only takes one core.


    Qiufang Shi

    • Marked as answer by Albert Hook Wednesday, April 6, 2016 1:42 PM
    Friday, January 22, 2016 2:02 AM
  • Thank you Quifang Shi,

    It is definitely not an MPI application. I am working with the developer to get it recompiled with MPI option. But in and of itself will that be of any benefit? The application as I understand it doesn't play well with 2 threads on the same core, hence the underlying OS automagically splits the single task onto available cores. Is it possible to have HPC assign 2 cores per task with a set of parametric tasks?

    Albert Hook

    Friday, January 22, 2016 4:43 PM
  • Is it possible to have HPC assign 2 cores per task with a set of parametric tasks?

    -- Yes, you can specify the task with /numprocessors:2-2 so that HPC scheduler will assign 2 cores for your task.


    Qiufang Shi

    Monday, January 25, 2016 4:21 AM
  • The assigning of 2 cores with parametric option didn't help. In the end I asked the developer to turn MPI on and recompile. This fixed the issue.
    Wednesday, April 6, 2016 1:43 PM