DataModel dataModel = recommender.getDataModel();
int numUsers = dataModel.getNumUsers();
double sampleRate = 1000.0 / numUsers;
LongPrimitiveIterator userSampler =
SamplingLongPrimitiveIterator.maybeWrapIterator(dataModel.getUserIDs(), sampleRate);
RunningAverage recommendationTime = new FullRunningAverageAndStdDev();
recommender.recommend(userSampler.next(), 10); // Warm up
Collection<Callable<Object>> callables = new ArrayList<Callable<Object>>();
while (userSampler.hasNext()) {
callables.add(new LoadCallable(recommender, userSampler.next(), recommendationTime));
}