How to make this run in multiple threads


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting How to make this run in multiple threads
# 8  
Old 03-16-2011
Hi.

If you want to use the single-process perl code as is, you could make use of parallel. From the GNU project page in part:
Quote:
If you use xargs and tee today you will find GNU parallel very easy to use as GNU parallel is written to have the same options as xargs. If you write loops in shell, you will find GNU parallel may be able to replace most of the loops and make them run faster by running several jobs in parallel.

GNU parallel makes sure output from the commands is the same output as you would get had you run the commands sequentially. This makes it possible to use output from GNU parallel as input for other programs.

-- GNU Parallel - GNU Project - Free Software Foundation
From my point of view, you'd split the input file of URLs into smaller files, then feed each one into a process generated by parallel. You could arrange to skip lines in the same input file, but that design seems error-prone.

Not knowing any more about the process except that it uses curl, it would seem to be network-bound, so it's unclear if anything is gained by parallelism, and, in fact, additional overhead might make the situation worse. Seems like a good example for a benchmark.

Best wishes ... cheers, drl
# 9  
Old 03-16-2011
Quote:
Originally Posted by drl
Hi.

If you want to use the single-process perl code as is, you could make use of parallel. From the GNU project page in part:

From my point of view, you'd split the input file of URLs into smaller files, then feed each one into a process generated by parallel. You could arrange to skip lines in the same input file, but that design seems error-prone.

Not knowing any more about the process except that it uses curl, it would seem to be network-bound, so it's unclear if anything is gained by parallelism, and, in fact, additional overhead might make the situation worse. Seems like a good example for a benchmark.

Best wishes ... cheers, drl
Thanks for your input. I've tried running the script in parallel, but that dosen't seem to be more productive. Right now the existing script takes 6 hours to complete the whole run, I wanted it to perform better. This is the reason I was thinking about running it in multiple threads.
Example: The input URL text file has 100 urls, My script should in 5 threads hitting 5 urls at one time. Which means it will run 5 times faster.

I want to make sure if this is possible in Perl scripting or Should I start looking for other options.

Thanks In advance.
# 10  
Old 03-16-2011
Quote:
Originally Posted by kzenthil
Thanks for your input. I've tried running the script in parallel, but that dosen't seem to be more productive.
It's the same idea. Each seperate process is independent -- even more profoundly independent than a thread.
Quote:
Example: The input URL text file has 100 urls, My script should in 5 threads hitting 5 urls at one time. Which means it will run 5 times faster.
Yes, this is how parallel works too. The idea would be to split the list in 5 and run 5 instances, each would process their chunk of the list independently. If it didn't work then there's a few possible reasons. Are you sure you only gave each instance part of the list instead of the whole list? Are you sure your processes were in the background instead of waiting for one to finish before starting the next? Or your connection may simply be throttling you from opening too many connections too fast...

So: How exactly were you running instances in parallel?
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Run a shell script in a loop with max number of threads

hi guys. i have a question for you i have a one file and inside this file there are 1000 lines and each line is a linux command running this commands takes long time so i want to create one bash script and run this lines in a loop with max number of threads for example i want to run... (2 Replies)
Discussion started by: avtaritet
2 Replies

2. Shell Programming and Scripting

Need to create multiple threads

Hi , i need to run multiple scripts parallely ,on my server....i have 8 cpus . planning to run minimum of 6 scripts paralley ....could you please suggest someone . thanks in advance , (3 Replies)
Discussion started by: Huvan
3 Replies

3. Shell Programming and Scripting

How to start multiple threads in Solaris?

Hello, In a unix Solaris environment, (for simulation) how to start multiple threads (as Light Weight Process, not background process)? thanks, J. (7 Replies)
Discussion started by: seafan
7 Replies

4. Shell Programming and Scripting

Make script that run with argument if not run from configuration file argument

Hello, Is there any method thorugh which script can take argument if pass otherwise if argument doesn't pass then it takes the argument from the configuration file i.e I am workiing on a script which will run through crontab and the script will chekout the code ,zip and copy to the... (3 Replies)
Discussion started by: rohit22hamirpur
3 Replies

5. Shell Programming and Scripting

Multiple Threads/Tasks to run parallely using the shell script

Scenario: I have two PCs (named as A & B) which would send some traps to my third PC (named as C). In PC C, I have to write a shell script such that it should accept the datas from both the PC-A & B parallely. So my question is, is it possible to have two different child threads/tasks... (2 Replies)
Discussion started by: nthiruvenkatam
2 Replies

6. UNIX for Dummies Questions & Answers

Copy files in Multiple Threads

Hello all, I have a directory of files of varying sizes. I want to copy all these files in n number of threads to another directory such that each copy set is more or less the same size. Example : Say /mydirA It has around say 23 files of various sizes. Number of copy... (0 Replies)
Discussion started by: samoo
0 Replies

7. Programming

how can I get to know what threads run within process java.exe on windows

I am writing java application on windows. There are more than 100 threads run within java.exe. I want to know what threads run within process java.exe so that I can find out if there are abnormal java threads. (4 Replies)
Discussion started by: mika
4 Replies

8. IP Networking

How to choose Multiple process or Multiple threads?

Hi All, Please explain me when i have to use multiple process and when I have to use Multiple threads? Please give me an example.It will be very helpful for me. Thanks in advance. (0 Replies)
Discussion started by: ashleykumar
0 Replies

9. Programming

synchronizing multiple threads in unix

hi all! I wanted to know how to synchronize multiple threads in unix It would be better if someone give some code samples Thanx (1 Reply)
Discussion started by: bankpro
1 Replies

10. Programming

How to use pipe() in multiple threads?

Hi, I have a program that runs two threads in stead of two processes. I want to use pipe to redirect the output of the first thread to the input of the second thread. One thread is continuously writing to a pipe, and the other thread will read from the pipe. How do I do that? Is there... (2 Replies)
Discussion started by: wminghao
2 Replies
Login or Register to Ask a Question