How to know if [program] is still running? (LLL to be precise)

asked 2015-03-10 11:09:43 -0600

mimoo gravatar image

I have not a lot of experience in running programs that take several hours to end.

I'm running an attack which complexity is dominated by the LLL function

It has been running for several hours now and I have no idea how well it's doing, or if the thing just crashed (I'm using sage in a virtualbox)

I've seen some people talking about syslog to continuously log

But I'm sure some people here have been in my situation and could share some light on this problem :)

David

edit retag flag offensive close merge delete

Comments

You could make your program print something every now and then.

slelievre gravatar imageslelievre ( 2015-03-11 06:04:49 -0600 )edit

@slelievre: that can surely sometimes be quite hard to do. For example if it is one call to one function in someone else's module that is causing the delay then you are limited by the functionality of the function, aren't you?

@mimoo: try googling for a sage debugger. That might give you more control over seeing what your program is doing.

Kevin Buzzard gravatar imageKevin Buzzard ( 2015-03-13 20:03:11 -0600 )edit

If you can get access to a terminal window on the machine (we should really package the sage virtual machine to run jupyter with the terminal server installed) you can run "top", which would show the processes that are using a lot of CPU time, and their memory use. If the memory use gets out of control you'd normally see the CPU utilization go down due to memory swapping. Usually you won't get a useful answer if that happens. Otherwise, you'd usually convince yourself that your program works in principle by trying smaller examples first and then slowly work your way to more complicated cases. You can usually extrapolate from running times on the smaller cases how long you should expect the larger cases to take.

nbruin gravatar imagenbruin ( 2016-05-07 12:53:20 -0600 )edit