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: eem2314
Subject: Re: Octave on PBS Job Array
Date: Wed, 27 Jun 2012 09:42:39 -0700 (PDT)

I believe if you add
#PBS -V
to the PBS script it will work - that tells PBS to use your current environment. I'm guessing LD_LIBRARY_PATH is not getting set

On Jun 26, 2012 8:34 AM, "mathan [via Octave]" <[hidden email]> wrote:
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








If you reply to this email, your message will be added to the discussion below:
http://octave.1599824.n4.nabble.com/Octave-on-PBS-Job-Array-tp4630912p4630978.html
To unsubscribe from Octave on PBS Job Array, click here.
NAML


View this message in context: Re: Octave on PBS Job Array
Sent from the Octave - Maintainers mailing list archive at Nabble.com.

reply via email to

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