Changeset 24


Ignore:
Timestamp:
09/10/12 11:22:25 (13 years ago)
Author:
mmamonski
Message:

Better --time_limit handling (Roman), added suport for -ntask, new version 1.0.5

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/configure.ac

    r23 r24  
    1 AC_INIT([PSNC DRMAA for SLURM], [1.0.3], [mamonski@man.poznan.pl], [slurm-drmaa]) 
     1AC_INIT([PSNC DRMAA for SLURM], [1.0.4], [mamonski@man.poznan.pl], [slurm-drmaa]) 
    22AC_PREREQ(2.59) 
    33AC_REVISION([$Id$]) 
     
    2323SLURM_DRMAA_MAJOR=1 
    2424SLURM_DRMAA_MINOR=0 
    25 SLURM_DRMAA_MICRO=3 
    26 SLURM_DRMAA_VERSION_INFO=1:3:0 
     25SLURM_DRMAA_MICRO=5 
     26SLURM_DRMAA_VERSION_INFO=1:5:0 
    2727AC_SUBST([SLURM_DRMAA_MAJOR]) 
    2828AC_SUBST([SLURM_DRMAA_MINOR]) 
  • trunk/slurm_drmaa/util.c

    r22 r24  
    3434#endif 
    3535 
    36 unsigned 
     36unsigned int 
    3737slurmdrmaa_datetime_parse( const char *string ) 
    3838{ 
     
    7878        END_TRY 
    7979 
    80         fsd_log_return(( "(%s) =%u", string, (unsigned)60*dt.hour+dt.minute )); 
     80        fsd_log_return(( "(%s) =%u minutes", string, (unsigned)60*dt.hour+dt.minute )); 
    8181        return 60*dt.hour+dt.minute; 
    8282} 
     
    101101        SLURM_NATIVE_SHARE, 
    102102        SLURM_NATIVE_JOB_NAME, 
    103         SLURM_NATIVE_TIME_LIMIT 
     103        SLURM_NATIVE_TIME_LIMIT, 
     104        SLURM_NATIVE_NTASKS 
    104105}; 
    105106 
     
    128129        fsd_free(job_desc->partition); 
    129130        fsd_free(job_desc->qos); 
    130         fsd_free(job_desc->req_nodes); 
    131         fsd_free(job_desc->reservation); 
     131 
    132132        fsd_free(job_desc->script); 
    133133        fsd_free(job_desc->std_in); 
     
    223223                case SLURM_NATIVE_NODES: 
    224224                        ptr = strdup(value); 
    225  
     225                         
    226226                        if((token = strtok_r(ptr,"=",&rest)) == NULL){ 
    227227                                fsd_log_error(("strtok_r returned NULL")); 
     
    265265                        break; 
    266266                case SLURM_NATIVE_JOB_NAME: 
    267                         fsd_log_debug(("# job_name = %s",job_desc->name)); 
    268                         job_desc->name = fsd_strdup(value); 
    269                         break; 
    270                 case SLURM_NATIVE_TIME_LIMIT: 
    271                         fsd_log_debug(("# time_limit = %s",value)); 
    272                         job_desc->time_limit = fsd_atoi(value);  
    273                         break;   
     267                        fsd_log_debug(("# job_name = %s",job_desc->name)); 
     268                        job_desc->name = fsd_strdup(value); 
     269                        break; 
     270                case SLURM_NATIVE_NTASKS: 
     271                        fsd_log_debug(("# ntasks = %s",value)); 
     272                        job_desc->num_tasks = fsd_atoi(value);  
     273                        slurmdrmaa_add_attribute(job_desc,SLURM_NATIVE_MINCPUS,value); 
     274                        break;   
     275                case SLURM_NATIVE_TIME_LIMIT: 
     276                        fsd_log_debug(("# time_limit = %s",value)); 
     277                        job_desc->time_limit = slurmdrmaa_datetime_parse(value);  
     278                        break;   
     279         
    274280                default: 
    275281                        fsd_exc_raise_fmt(FSD_DRMAA_ERRNO_INVALID_ATTRIBUTE_VALUE,"Invalid attribute"); 
     
    289295                name = fsd_strdup(strtok_r(add_attr_copy, "=", &ctxt)); 
    290296                value = strtok_r(NULL, "=", &ctxt); 
    291                          
     297                if (value == NULL) { 
     298                        fsd_exc_raise_fmt(FSD_DRMAA_ERRNO_INVALID_ATTRIBUTE_VALUE,  
     299                                "Invalid native specification: %s Missing '='.", add_attr_copy); 
     300                } 
     301 
    292302                if(strcmp(name,"account") == 0) { 
    293303                        slurmdrmaa_add_attribute(job_desc,SLURM_NATIVE_ACCOUNT,value); 
     
    349359                else if(strcmp(name,"time") == 0) { 
    350360                        slurmdrmaa_add_attribute(job_desc,SLURM_NATIVE_TIME_LIMIT,value); 
     361                } else if(strcmp(name,"ntasks") == 0) { 
     362                        slurmdrmaa_add_attribute(job_desc,SLURM_NATIVE_NTASKS,value); 
    351363                } else { 
    352364                        fsd_exc_raise_fmt(FSD_DRMAA_ERRNO_INVALID_ATTRIBUTE_VALUE, 
     
    413425                                                slurmdrmaa_add_attribute(job_desc,SLURM_NATIVE_JOB_NAME, arg); 
    414426                                                break;           
    415                                         case 't' : 
    416                                                 slurmdrmaa_add_attribute(job_desc,SLURM_NATIVE_TIME_LIMIT, arg); 
    417                                                 break;   
    418          
     427                                        case 't' : 
     428                                                slurmdrmaa_add_attribute(job_desc,SLURM_NATIVE_TIME_LIMIT, arg); 
     429                                                break;   
     430                                        case 'n' : 
     431                                                slurmdrmaa_add_attribute(job_desc,SLURM_NATIVE_NTASKS, arg); 
     432                                                break;   
    419433                                        default :                                                                
    420434                                                        fsd_exc_raise_fmt(FSD_DRMAA_ERRNO_INVALID_ATTRIBUTE_VALUE, 
Note: See TracChangeset for help on using the changeset viewer.