In [5]:
import time
import pyfof
from halotools.sim_manager import CachedHaloCatalog
from halotools.empirical_models import PrebuiltHodModelFactory
from halotools.empirical_models.factories.mock_helpers import three_dim_pos_bundle
from halotools.mock_observables import groups
apfof = groups.FoFGroups

In [6]:
# initialise halo catalogue and HOD
halocat = CachedHaloCatalog(simname='bolshoi', redshift=0., halo_finder='rockstar')
hodmod = PrebuiltHodModelFactory('zheng07', threshold=-21.)

# linking length for group finders
b_0 = 0.75

In [7]:
outpyfof = []
outhalo = []

# now set up a loop to run the group finder a few times
for i in range(1):
    print "group finder loop run ", i + 1
    print "..."
    hodmod.populate_mock(halocat)
    print "finished populating mock"
    pos =three_dim_pos_bundle(hodmod.mock.galaxy_table, 'x', 'y', 'z')
    nbar = len(pos) / 1000**3.
    b = b_0 * (nbar) ** (-1. / 3)
    
    print "starting pyfof group finder..."
    t1pyfof = time.time()
    pyfofgrps = pyfof.friends_of_friends(pos , b)
    t2pyfof = time.time()
    print "done"
    outpyfof.append((pyfofgrps, t2pyfof - t1pyfof))
    
    print "starting halotools group finder..."
    t1halo = time.time()
    halogrps = apfof(pos, b, b, Lbox=[250,250,250])
    t2halo = time.time()
    print "done"
    outhalo.append((halogrps, t2halo - t1halo))


group finder loop run  1
...
finished populating mock
starting pyfof group finder...
done
starting halotools group finder...
---------------------------------------------------------------------------
MemoryError                               Traceback (most recent call last)
<ipython-input-7-4079f7d87efe> in <module>()
     21     print "starting halotools group finder..."
     22     t1halo = time.time()
---> 23     halogrps = apfof(pos, b, b, Lbox=[250,250,250])
     24     t2halo = time.time()
     25     print "done"

/home/kilian/.envs/astro2.7/lib/python2.7/site-packages/halotools/mock_observables/groups.pyc in __init__(self, positions, b_perp, b_para, period, Lbox, num_threads)
    126         self.m_perp, self.m_para = xy_z_pair_matrix(
    127             self.positions, self.positions, self.d_perp, self.d_para,
--> 128             period=self.period,num_threads=num_threads)
    129 
    130         self.m = self.m_perp.multiply(self.m_perp)+self.m_para.multiply(self.m_para)

/home/kilian/.envs/astro2.7/lib/python2.7/site-packages/halotools/mock_observables/pair_counters/double_tree_pair_matrix.pyc in xy_z_pair_matrix(data1, data2, rp_max, pi_max, period, verbose, num_threads, approx_cell1_size, approx_cell2_size)
    365         pool.close()
    366     if num_threads==1:
--> 367         result = list(map(engine,list(range(Ncell1))))
    368 
    369     #arrays to store result

/home/kilian/.envs/astro2.7/lib/python2.7/site-packages/halotools/mock_observables/pair_counters/double_tree_pair_matrix.pyc in _xy_z_pair_matrix_engine(double_tree, rp_max, pi_max, period, PBCs, icell1)
    429             x_icell1, y_icell1, z_icell1,
    430             x_icell2, y_icell2, z_icell2,
--> 431             rp_max, pi_max)
    432 
    433         ii_inds = ii_inds+i_min

halotools/mock_observables/pair_counters/cpairs/pairwise_distances.pyx in halotools.mock_observables.pair_counters.cpairs.pairwise_distances.pairwise_xy_z_distance_no_pbc (halotools/mock_observables/pair_counters/cpairs/pairwise_distances.cpp:3069)()

MemoryError: std::bad_alloc

In [ ]: