Back to the main page.

Bug 1145 - Global variable remains in memory of a peer in the qsub job distribution system

Reported 2011-11-11 15:35:00 +0100
Modified 2011-11-23 11:57:13 +0100
Product: FieldTrip
Component: qsub
Version: unspecified
Hardware: PC
Operating System: Windows
Importance: P3 normal
Assigned to: Robert Oostenveld
Depends on:
See also:

Arjen Stolk - 2011-11-11 15:35:13 +0100

According to Inge: If you start a series of jobs in which the mfile (sent along) contains a global variable, then that variable is still in memory of the respective peer mentats when sending a next batch of jobs. Even when you send a new input for that specific gobal variable, the global variable is not updated.

Robert Oostenveld - 2011-11-22 13:09:36 +0100

there is a getglobal function in qsub/private, which does the following ---- persistent previous_list previous_varout list = whos('global'); if isequal(list, previous_list) var = previous_varout; return; end ---- so if the variable *names* don't change, it returns the same variable *values*. That is incorrect, because with identical names the value can still become different over subsequent calls. The persistent variable was implemented for speed reasons, but apparently cannot work this way. I have fixed it in my local copy, but cannot commit because I am traveling. I'll commit the fixed version later.

Robert Oostenveld - 2011-11-23 06:16:29 +0100

ip212-238-43-102> svn commit qsub/private/getglobal.m Sending qsub/private/getglobal.m Transmitting file data . Committed revision 4786.

Arjen Stolk - 2011-11-23 08:03:50 +0100

Thanks! Hope you had a nice flight. (In reply to comment #2)

Boris Reuderink - 2011-11-23 11:56:40 +0100

Arjen, could you confirm that this indeed solves Inge's problem? I don't fully understand what this is all about.