Ignore:
Timestamp:
Aug 30, 2012, 8:05:57 PM (13 years ago)
Author:
steve
Message:

Changed vanilla communication to array communication

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/anuga_core/source/anuga_parallel/parallel_api.py

    r8544 r8545  
    136136           
    137137        # Send serial to parallel (s2p) and parallel to serial (p2s) triangle mapping to proc 1 .. numprocs
     138
     139
     140
     141        n = len(s2p_map)
     142        s2p_map_keys_flat = num.reshape(num.array(s2p_map.keys(),num.int), (n,1) )
     143        s2p_map_values_flat = num.array(s2p_map.values(),num.int)
     144        s2p_map_flat = num.concatenate( (s2p_map_keys_flat, s2p_map_values_flat), axis=1 )
     145
     146        n = len(p2s_map)
     147        p2s_map_keys_flat = num.reshape(num.array(p2s_map.keys(),num.int), (n,2) )
     148        p2s_map_values_flat = num.reshape(num.array(p2s_map.values(),num.int) , (n,1))
     149        p2s_map_flat = num.concatenate( (p2s_map_keys_flat, p2s_map_values_flat), axis=1 )
     150       
    138151        for p in range(1, numprocs):
     152
    139153            # FIXME SR: Creates cPickle dump
    140 
    141             print '*** s2p'
    142             protocol(s2p_map)
    143 
    144             n = len(s2p_map)
    145             s2p_map_keys_flat = num.reshape(num.array(s2p_map.keys(),num.int), (n,1) )
    146 
    147             print s2p_map_keys_flat.shape
    148 
    149             s2p_map_values_flat = num.array(s2p_map.values(),num.int)
    150             print s2p_map_values_flat.shape
    151            
    152             s2p_map_flat = num.concatenate( (s2p_map_keys_flat, s2p_map_values_flat), axis=1 )
    153             #print s2p_map_keys_flat
    154             #print s2p_map_values_flat
    155             #print s2p_map_flat
    156 
    157154            send(s2p_map_flat, p)
    158155            # FIXME SR: Creates cPickle dump
    159156            #print p2s_map
    160             send(p2s_map, p)
     157            send(p2s_map_flat, p)
    161158
    162159        if verbose: print 'Communication done'
     
    182179        s2p_map = dict.fromkeys(s2p_map_flat[:,0], s2p_map_flat[:,1:2])
    183180
    184         p2s_map = receive(0)
    185 
     181        p2s_map_flat = receive(0)
     182        p2s_map_keys = [tuple(x) for x in p2s_map_flat[:,0:1]]
     183
     184        p2s_map = dict.fromkeys(p2s_map_keys, p2s_map_flat[:,2])
    186185
    187186    #------------------------------------------------------------------------
Note: See TracChangeset for help on using the changeset viewer.