parallel
[Top][All Lists]
Advanced

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

Re: Transfer output of a command from remote computer


From: Ole Tange
Subject: Re: Transfer output of a command from remote computer
Date: Mon, 12 May 2014 17:51:02 +0200

On Fri, May 9, 2014 at 11:44 AM, V A Ramesh <varavind121@yahoo.com> wrote:

> I am running a job like this
>
> parallel --eta -S .. --trc {.}.out < Testing_Para
>
> Testing_para:
:
> svm-train -c 0.125 -g 0.015625 -v 10 -m 2000 Combined_Full.scaled >&
> Combined_Full.scaled_0.125_0.015625.out
> svm-train -c 0.125 -g 0.03125 -v 10 -m 2000 Combined_Full.scaled >&
> Combined_Full.scaled_0.125_0.03125.out
:
> svm-train -c 0.25 -g 0.00048828125 -v 10 -m 2000 Combined_Full.scaled >&
> Combined_Full.scaled_0.25_0.00048828125.out
> svm-train -c 0.25 -g 0.0009765625 -v 10 -m 2000 Combined_Full.scaled >&
> Combined_Full.scaled_0.25_0.0009765625.out

> Problem 1:
>
> I want '.out' files after completion of the job. I realized that --trc
> {.}.out is not the appropriate way to use and I manually retrieved the
> results back from the remote computer.

When you pass the whole command as argument {.} will contain the whole
command. That is clearly not what you want.

It seems you want to run 'svm-train' on different values and want an
output file to depend on this. To simplify your command let us assume
you want the output from:

    svm-train a 1
    svm-train a 2
    svm-train a 3
    svm-train a 4
    svm-train a 5
    svm-train a 6
    svm-train a 7
    svm-train b 1
    svm-train b 2
    svm-train b 3

You can the generate the commands using GNU Parallel:

    parallel --xapply svm-train {1} {2} ::: a a a a a a a b b b ::: 1
2 3 4 5 6 7 1 2 3

If you would rather have the 'a a a a a a a b b b'  and '1 2 3 4 5 6 7
1 2 3' in files, use :::: possibly with --colsep.

Now you want the output put in files depending on the arguments:

    parallel --xapply svm-train {1} {2} ">&" out.{1}.{2} ::: a a a a a
a a b b b ::: 1 2 3 4 5 6 7 1 2 3

To return these back and remove them from the remote site you need
--return --cleanup:

    parallel --return out.{1}.{2} --cleanup --xapply svm-train {1} {2}
">&" out.{1}.{2} ::: a a a a a a a b b b ::: 1 2 3 4 5 6 7 1 2 3

But if you are simply redirecting output into a file, why not use
--results which is made for this kind of problem:

    parallel --results outdir --xapply svm-train {1} {2} ::: a a a a a
a a b b b ::: 1 2 3 4 5 6 7 1 2 3 >/dev/null

Now the output is neatly stored in a structured way in 'outdir/*/*/*/*'

> Problem 2:
>
> I also had to transfer input files from host to remote computer manually.
> How to solve this two problems.

If the argument is the inputfile, then you use --transfer. I do not
see an inputfile in your example.

If the inputfile is more like a read-only database that does not
change, but remains the same for every job, use --basefile.

> Vakkalagadda A Ramesh
> Jr. Research Fellow
> Lab of Computational Biology
> Centre for DNA Fingerprinting and Diagnostics (CDFD)

I am hoping your research results in published articles.


/Ole



reply via email to

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