7 views

### Russell Jarvis

Aug 9, 2016, 6:15:58 PM8/9/16

Hi everyone,

I am trying to use scoop to use multiple hosts to iterate over a loop. My problem differs from the example problems in that the list used for iteration has elements which are length 3 tuples.

The code properly iterates through the entire list when I execute it without invoking scoop with:

\$ipython -i ex_scoop.py

However if I use scoop:

with

\$python -m scoop ex_scoop.py

The program only iterates through the first 4 values of the much larger list, and then quits. Does anyone know why this is? Can futures.map get confused about the length of a list of tuples type list?

The code that is generating the problem is below. I am sure it is some kind of beginners conceptual error.

I looked at the full_tree.py example at https://github.com/soravux/scoop/blob/master/examples/full_tree.py

But it does not have any examples quiet like mine. Thanks for your help:)

import numpy as np

import pdb

from scoop import futures

import scoop.utils as utils

import scoop as scoop

import code

class Individual(list):

def __init__(self, *args):

list.__init__(self, *args)

def simulator(individual,param_dict):

R = Model(individual,param_dict)

volts = R.sn()

return volts

individual=[0 for i in xrange(0,3)]

paramdict = {i: 0 for i in params}

faster_iter=[]

ap=8e-8

for zz in xrange(0,27):

va=7e-4

for jj in xrange(0,1):

hd=6e-6

for ii in xrange(0,89):

#Append a tuple of iterator contents also flattening iteration into a list.

faster_iter.append((ap,va,hd))

hd=hd+1e-6

va=va+1e-4

ap=ap*10

def do_this(faster_iter):

(x,y,z) = faster_iter

print x,y,z, scoop.worker

paramdict={}

paramdict['ap']=x

paramdict['va']=y

paramdict['hd']=z

volts = simulator(individual,paramdict)

hdl.append(x)

lval.append(y)

napl.append(z)

if __name__ == '__main__':

hdl=[]

lval=[]

napl=[]

serial_contents=futures.map(do_this,faster_iter)

list_of_lists=zip(hdl, lval, napl)

print len(list_of_lists)