octave-maintainers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Octave on PBS Job Array


From: mathan
Subject: Re: Octave on PBS Job Array
Date: Tue, 26 Jun 2012 08:34:16 -0700 (PDT)

The following error has occurring when i submit the job in PBS but the .m
file is running without any problem when i execute it from bash program
interactively( Not in PBS )

*octave: error while loading shared libraries: libgfortran.so.3: cannot open
shared object file: No such file or directory*

PBS script 


#!/bin/bash
#PBS -S /bin/bash 
#PBS -N octave_bf
##PBS -m e  
#PBS -q job_array
#PBS -l walltime=12:00:00 
#PBS -j oe 
#PBS -J 1-10000
##PBS -o event_al_^array_index^.out
##PBS -e event_al_^array_index^.err

# Export path to PBS

export PATH=/lustre/applications/OCTAVE/octave-3.6.1/bin:${PATH}
cd /lustre/scratch/mathan1/bct_matlab/2012-03-29BCT/

#for ((PBS_ARRAY_INDEX=1;PBS_ARRAY_INDEX<= 27 ;PBS_ARRAY_INDEX++)); do 
#echo ${PBS_ARRAY_INDEX} >>log 

# Initialize  values for the parameters
    iter_init=1
    para_init=1
    net_init=1

# Initiaize the increments values for the parameters
    iter_increment=1
    para_increment=1
    net_increment=1

# Maximum limit of the each parameters
    max_iter=1000
    max_para=5
    max_net=2

# size of each parameter set
        if [ ${iter_increment} == 0 ]; then
        iter_set=1
        else
        iter_set=$(echo "scale=2; ((${max_iter} - ${iter_init}) /
${iter_increment})+1"| bc -l)
        fi

        if [ ${net_increment} == 0 ]; then
        net_set=1
        else
        net_set=$(echo "scale=2; ((${max_net} - ${net_init}) /
${net_increment})+1"| bc -l)
        fi
        para_set=$(echo "scale=2; ((${max_para} - ${para_init}) /
${para_increment})+1"| bc -l)
        tot_job_array=$(echo "scale=2; ${iter_set}*${para_set}*${net_set}"|
bc -l)

        loop1set=${para_set}
# calculating x1>>>>for net
        x1=$(echo "scale=0; ((${PBS_ARRAY_INDEX} % ${tot_job_array}) /
${loop2set})"| bc -l)
        net=$(echo "scale=2; (${net_init} + (${net_increment}*${x1}))"| bc
-l)

# calculating x2>>>>for iter
        x2=$(echo "scale=0; ((${PBS_ARRAY_INDEX} % ${loop2set}) /
${loop1set})"| bc -l)
        iter=$(echo "scale=2; (${iter_init} + (${iter_increment}*${x2}))"|
bc -l)

        y=$(echo "scale=0; (${PBS_ARRAY_INDEX} % ${loop1set})"| bc -l)
        para=$(echo "scale=2; (${para_init} + (${para_increment}*${y}))"| bc
-l)

# Convert to integer
        net=${net/\.*}
        iter=${iter/\.*}
        para=${para/\.*}

# Print all
#   echo parameter set      ${para}     ${net}      ${iter}

# Call Octave and execute independent Job
    octave parameter.m ${para} ${net} ${iter}
# done

*The Octave Script*
#! /bin/octave -qf

% Get required values from terminal 1.parameter 2.network 3.iteration
    para=str2num(argv(){1});
    net=str2num(argv(){2});
    iter=str2num(argv(){3});

% Change number to string
    spara=int2str(para);
    snet=int2str(net);
    siter=int2str(iter);

% Fill other values :: div = from five set 0.1/3/5/7/9 group
    npts=400;
    div =1;
    sdiv = int2str(div);

% Load coordinate file
    pts= load
('/lustre/scratch/mathan1/orgin/inputdata/randat_4p3.dat','-ascii');
    start_pt = (npts*(net-1)+1);
    end_pt = (net*npts);
    x=pts(start_pt:end_pt,1);
    y=pts(start_pt:end_pt,2);

% Load matrix
    fsyn3 = 'sf50';
    fsyn2 = 'res';
    uc = '_';
    sl = '/';
    fsyn1 = '/lustre/scratch/mathan1/orgin/test2/';
    matfile  = [fsyn1 fsyn2 uc sdiv uc spara uc snet sl siter fsyn3];

% Load parameter file and its values
    fsy1 = '_al_sf.dat';
    parf = [fsyn1 sdiv fsy1];
    PP =load(parf,'-ascii');

    tbf = PP(para,1)
    cbf = PP(para,2)
    tal = PP(para,3)

% Load network matrix and distance matrix
    A  =load(matfile,'-ascii');
    D = distance_bin(A);

% Count total wiring length
    [a,b] = find(triu(A,1));
        count = size(a,1);
        length=0;
 for z = 1:count
        cc1=(x(a(z))-y(a(z))).^2;
        cc2=(x(b(z))-y(b(z))).^2;
        length(z) = sqrt(cc1+cc2);
    end
    tot_length=sum(length)

% Call all other functions

    C = clustering_coef_bu(A);

    AC = mean(C);

    [lambda,efficiency,ecc,radius,diameter] = charpath(D);

    Eglob = efficiency_bin(A);

    r = assortativity_bin(A,0);

    [kden,N,K] = density_und(A);

    [fc,FC,total_flo] = flow_coef_bd(A);

    [C_tri]=transitivity_bu(A);

% Write all parameter values to file 
% Order for out file
% 1-tbf
% 2-cbf
% 3-tal
% 4-iter
% 5-tot_length-
% 6-AC clusteringcoefficient-
% 7-lambda-Avg Shortest Path length
% 8-efficiency-
% 9-radius-
% 10-diameter-
% 11-Eglob-Global Efficiency
% 12-r  -assortativity Co-efficient
% 13-FC - Average Flow Coefficient
% 14-C_tri -Transitivity
% 15-kden-Density
% 16-N- No of Nodes
% 17-K- No of Edges
% 18-para
% 19-net 

% Append it to the exixting file

    fid = fopen('parameter_bf_1.dat','a+');
   
fprintf(fid,'%f\t%f\t%f\t%f\t%f\t%f\t%f\t%f\t%f\t%f\t%f\t%f\t%f\t%f\t%f\t%f\t%f\t%d\t%d\n',tbf,cbf,tal,iter,tot_length,AC,lambda,efficiency,radius,diameter,Eglob,r,FC,C_tri,kden,N,K,para,net);
    fclose(fid);


help appreciated much

Mathan 







--
View this message in context: 
http://octave.1599824.n4.nabble.com/Octave-on-PBS-Job-Array-tp4630912p4630978.html
Sent from the Octave - Maintainers mailing list archive at Nabble.com.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]