Changeset 35


Ignore:
Timestamp:
04/22/14 16:14:49 (11 years ago)
Author:
pkopta
Message:

Michael Gutteridge <michael.gutteridge@…> patch for "mincpus" calculations.

Location:
trunk/slurm_drmaa
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/slurm_drmaa/job.c

    r34 r35  
    666666        } 
    667667 
     668    /* set defaults for constraints - ref: slurm.h */ 
     669    fsd_log_debug(("# Setting defaults for tasks and processors" )); 
     670    job_desc->num_tasks = 1; 
     671    job_desc->min_cpus = 0; 
     672    job_desc->cpus_per_task = 0; 
     673    job_desc->pn_min_cpus = 0; 
     674 
    668675        /* native specification */ 
    669676        value = jt->get_attr( jt, DRMAA_NATIVE_SPECIFICATION ); 
     
    674681        } 
    675682         
    676 }                
    677  
    678  
     683} 
     684 
     685 
  • trunk/slurm_drmaa/session.c

    r13 r35  
    9393        fsd_job_t *volatile job = NULL; 
    9494        char **volatile job_ids = NULL; 
    95         unsigned n_jobs = 0; 
     95        unsigned n_jobs = 1; 
    9696        volatile bool connection_lock = false; 
    9797        fsd_environ_t *volatile env = NULL; 
     
    103103 
    104104                if( start != end ) 
    105                         n_jobs = (end - start) / incr + 1; 
    106                 else  
    107                         n_jobs = 1;      
    108  
    109                 if(  start != end ) 
    110105                 { 
    111106                        unsigned idx, i; 
     107 
     108                        n_jobs = (end - start) / incr + 1; 
    112109 
    113110                        fsd_calloc( job_ids, n_jobs+1, char* ); 
     
    125122                                connection_lock = fsd_mutex_unlock( &self->drm_connection_mutex ); 
    126123 
    127  
    128124                                job_ids[i] = fsd_asprintf("%d",submit_response->job_id); /*TODO  */ 
    129125 
     
    140136                 { 
    141137                        fsd_calloc( job_ids, n_jobs+1, char* ); 
    142                          
     138 
    143139                        connection_lock = fsd_mutex_lock( &self->drm_connection_mutex ); 
    144140                        slurmdrmaa_job_create_req( self, jt, (fsd_environ_t**)&env , &job_desc, 0); 
     
    148144                        } 
    149145 
     146                        connection_lock = fsd_mutex_unlock( &self->drm_connection_mutex ); 
     147 
    150148                        fsd_log_debug(("job %u submitted", submit_response->job_id));          
    151                         connection_lock = fsd_mutex_unlock( &self->drm_connection_mutex ); 
    152149                         
    153150                        job_ids[0] = fsd_asprintf( "%d", submit_response->job_id); /* .0*/ 
  • trunk/slurm_drmaa/util.c

    r34 r35  
    118118        SLURM_NATIVE_CONSTRAINT, 
    119119        SLURM_NATIVE_CONTIGUOUS, 
     120        SLURM_NATIVE_CPUS_PER_TASK, 
    120121        SLURM_NATIVE_EXCLUSIVE, 
    121122        SLURM_NATIVE_MEM, 
     
    211212                        job_desc->contiguous = 1; 
    212213                        break; 
     214                case SLURM_NATIVE_CPUS_PER_TASK: 
     215                        fsd_log_debug(( "# cpus_per_task = %s", value)); 
     216            job_desc->cpus_per_task = fsd_atoi(value); 
     217                        break; 
    213218                case SLURM_NATIVE_EXCLUSIVE: 
    214219                        fsd_log_debug(( "# exclusive -> shared = 0")); 
     
    252257                        job_desc->job_min_cpus = fsd_atoi(value); 
    253258                #else 
    254                         fsd_log_debug(("# min_cpus = %s",value)); 
    255                         job_desc->min_cpus = fsd_atoi(value); 
     259                        fsd_log_debug(("# pn_min_cpus = %s",value)); 
     260                        job_desc->pn_min_cpus = fsd_atoi(value); 
    256261                #endif 
    257262                        break; 
     
    311316                        fsd_log_debug(("# ntasks = %s",value)); 
    312317                        job_desc->num_tasks = fsd_atoi(value);  
    313                         slurmdrmaa_add_attribute(job_desc,SLURM_NATIVE_MINCPUS,value); 
    314318                        break;   
    315319                case SLURM_NATIVE_TIME_LIMIT: 
     
    347351                case SLURM_NATIVE_TMP: 
    348352                        fsd_log_debug(("# tmp = %s", value)); 
    349                         #if SLURM_VERSION_NUMBER >= SLURM_VERSION_NUM(2,3,0) 
    350                         job_desc->pn_min_tmp_disk = fsd_atoi(value); 
    351                         #else 
    352                         job_desc->job_min_tmp_disk = fsd_atoi(value); 
    353                         #endif 
     353                                #if SLURM_VERSION_NUMBER >= SLURM_VERSION_NUM(2,3,0) 
     354                                        job_desc->pn_min_tmp_disk = fsd_atoi(value); 
     355                                        #else 
     356                                        job_desc->job_min_tmp_disk = fsd_atoi(value); 
     357                                        #endif 
    354358                        break; 
    355359                default: 
     
    365369        char *ctxt = NULL; 
    366370        char * volatile add_attr_copy = fsd_strdup(add_attr); 
     371 
     372        fsd_log_enter(( "" )); 
    367373 
    368374        TRY 
     
    392398                        slurmdrmaa_add_attribute(job_desc,SLURM_NATIVE_CONTIGUOUS,NULL); 
    393399                } 
     400                else if (strcmp(name,"cpus-per-task") == 0) { 
     401                        slurmdrmaa_add_attribute(job_desc,SLURM_NATIVE_CPUS_PER_TASK,value); 
     402                } 
    394403                else if(strcmp(name,"exclusive") == 0) { 
    395404                        slurmdrmaa_add_attribute(job_desc,SLURM_NATIVE_EXCLUSIVE,NULL); 
     
    473482          } 
    474483        END_TRY 
     484        fsd_log_return(( "" )); 
    475485} 
    476486 
     
    508518                                                slurmdrmaa_add_attribute(job_desc,SLURM_NATIVE_CONSTRAINT, arg); 
    509519                                                break;   
     520                                        case 'c' : 
     521                                                slurmdrmaa_add_attribute(job_desc,SLURM_NATIVE_CPUS_PER_TASK, arg); 
     522                                                break;   
    510523                                        case 'N' :       
    511524                                                slurmdrmaa_add_attribute(job_desc,SLURM_NATIVE_NODES, arg); 
     
    563576        FINALLY 
    564577         { 
     578        fsd_log_debug(( "finalizing job constraints" )); 
     579        if( job_desc->cpus_per_task > 0 ) { 
     580            job_desc->min_cpus = job_desc->num_tasks * job_desc->cpus_per_task ; 
     581            fsd_log_debug(( 
     582                        "set min_cpus to ntasks*cpus_per_task: %d", 
     583                        job_desc->min_cpus  
     584                        )); 
     585        } else { 
     586            job_desc->min_cpus = job_desc->num_tasks ;  
     587            fsd_log_debug(( 
     588                        "set min_cpus to ntasks: %d", 
     589                        job_desc->min_cpus  
     590                        )); 
     591        } 
    565592                fsd_free(native_spec_copy); 
    566593                fsd_free(native_specification); 
Note: See TracChangeset for help on using the changeset viewer.