Hi pympi-users !

my question perhaps is not a real problem with pympi, is more about programming and complexity. I hope that you can help me !

The next piece of code work fine just one time:

if (mpi.rank==0 ):   
    for i in range(1,mpi.size):
        mpi.send(m_matrix,i,tag=98)
    dml=[]
    for l in range(1,mpi.size):
        m_menor,status=mpi.recv(tag=97)
        dml.append(m_menor)       
    dmg=[]
    dmg.append(min(dml))
    m_matrix=upgma(m_matrix,m_nom,dmg)
    for n in range(len(m_matrix[0])):
        print m_matrix[0][n]
    print m_matrix[1]   
else:
    e_matrix,status=mpi.recv(tag=98)
    vvif=vivf(e_matrix)
    print vvif[0],vvif[1],mpi.rank
    e_menor=upgmaNuc.menor(e_matrix,vvif[0],vvif[1])
    mpi.send(e_menor,0,tag=97)


I need to repeat "n times" the same code in master (rank=0) and exactly "n times" in slaves (rank!=0), but if i try to repeat "n times" it doesnt work, it return me "UnboundLocalError: local variable 'pos' referenced before assignment". I couldnt understand this error

if (mpi.rank==0):
        for n in range(3):
                for i in range(1,mpi.size):
                     mpi.send(m_matrix,i,tag=98)
                dml=[]
                for l in range(1,mpi.size ):
                     m_menor,status=mpi.recv(tag=97)
                     dml.append(m_menor)       
                dmg=[]
                dmg.append(min(dml))
                m_matrix=upgma(m_matrix,m_nom,dmg)
                for n in range(len(m_matrix[0])):
                     print m_matrix[0][n]
                print m_matrix[1]   
else:
        for n in range(3):
                e_matrix,status=mpi.recv (tag=98)
                vvif=vivf(e_matrix)
                e_menor=upgmaNuc.menor(e_matrix,vvif[0],vvif[1])
                mpi.send(e_menor,0,tag=97)

Thanks,

--
jDSL
Bucaramanga, Colombia
UIS Rugby Club (c) 2007