multiple processes

V

Vikas Vijay

hello all,
I have a c++ code in which is sth like

while(i < N)
{
....
do some processing in c++ to create file abc
system("simulator_name < abc")
......c++ ... processing......
}
The problem is my simulator takes some time T to load and only then
starts working on the file abc.After completion the simulator is
exited and the same thing(loading + execution happens in next
iterations..) Since the number of iterations are huge (wasted time NT)
i want something like :

open the simulator only once( just doing system("simulator_name") and
get the handle to the simulator prompt. From then on i just load the
new "abc" file in each iteration, wait for the simulation to complete
(do not exit the simulator) and start my new iteration.

I read about creating a new child process(popen command) etc but could
not figure out exactly how to get a handle to the prompt, and wait
till the simulation is completed. Also the child process is not to be
killed otherwise i lose the handle.
I would appreciate any help/references in this regard. There is
nothing simulator specific. You can imagine a simple gdb command in
place of simulator_command and handle at gdb>

-Thanks
Vikas
 
J

John Carson

Vikas Vijay said:
hello all,
I have a c++ code in which is sth like

while(i < N)
{
...
do some processing in c++ to create file abc
system("simulator_name < abc")
.....c++ ... processing......
}
The problem is my simulator takes some time T to load and only then
starts working on the file abc.After completion the simulator is
exited and the same thing(loading + execution happens in next
iterations..) Since the number of iterations are huge (wasted time NT)
i want something like :

open the simulator only once( just doing system("simulator_name") and
get the handle to the simulator prompt. From then on i just load the
new "abc" file in each iteration, wait for the simulation to complete
(do not exit the simulator) and start my new iteration.

I read about creating a new child process(popen command) etc but could
not figure out exactly how to get a handle to the prompt, and wait
till the simulation is completed. Also the child process is not to be
killed otherwise i lose the handle.
I would appreciate any help/references in this regard. There is
nothing simulator specific. You can imagine a simple gdb command in
place of simulator_command and handle at gdb>

-Thanks
Vikas


This is operating system specific (the boost threads library may allow you
to make this somewhat platform independent, but I doubt that it will do the
complete job). I suggest that you post to a newsgroup for your operating
system.

Alternatively, it might be simpler to integrate your while() loop into your
simulator (perhaps your simulator could retrieve data from a file giving
instructions for each run).
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,777
Messages
2,569,604
Members
45,234
Latest member
SkyeWeems

Latest Threads

Top