// arguments: // p is a vector of randomly generated strings (each size of 80 bytes) // map is a hash table that maps strings to random integer int main(std::vector& p, std::unordered_map& map) {  uint64_t profiling_duration = 180000000000.0 // nsecs   uint64_t elapsed_time = 0; uint64_t dummy = 0;   __itt_resume();   __itt_domain* pD = __itt_domain_create( "My Domain" );   pD->flags = 1; // enable domain   __itt_frame_begin_v3(pD, NULL);   double* dummy_frame = (double*) pD;   dummy_frame++;   __itt_frame_end_v3(pD, NULL);   std::cout << "dummy frame: " << dummy_frame << std::endl;   while(elapsed_time < profiling_duration) {   auto start = std::chrono::high_resolution_clock::now();     for (unsigned i = 0; i < p.size()/step_size; i++) {     for (unsigned j = i*step_size; j < (i+1)*step_size; j++)       dummy += map.hash(p[j]);       __itt_frame_begin_v3(pD, NULL);       for (unsigned j = i*step_size; j < (i+1)*step_size; j++) {         auto it = map.find(p[j]);         if (it != map.end()) {         s += j;         }       }       __itt_frame_end_v3(pD, NULL); } auto end = std::chrono::high_resolution_clock::now();     elapsed_time += (uint64_t) std::chrono::duration_cast(end - start).count(); } return 0; }