     instrumented = args.CheckCmdLineFlag("instrumented");
     g_quick = args.CheckCmdLineFlag("quick");
 
+    info["mark_predecessors"] = mark_pred;
+    info["verbose"] = g_verbose;
+    info["instrumented"] = instrumented;
+    info["quick"] = g_quick;
+
     args.GetCmdLineArgument("iteration-num", iterations);
     args.GetCmdLineArgument("grid-size", max_grid_size);
     args.GetCmdLineArgument("idempotence", idempotence);
     args.GetCmdLineArgument("queue-sizing", max_queue_sizing);
+
+    info["iterations"] = iterations;
+    info["max_grid_size"] = max_grid_size;
+    info["idempotence"] = idempotence;
+    info["max_queue_sizing"] = max_queue_sizing;
 
     if (instrumented)
     {

    if (total_queued > 0)
    {
        // measure duplicate edges put through queue
        redundant_work = ((double)total_queued - edges_visited) / edges_visited;
    }
    redundant_work *= 100;



    // Put arguments into info data structure
    info["num_gpus"] = num_gpus;
    info["vertex_id"] = src;
    info["traversal_mode"] = traversal_mode;

    // Allocate host-side label array (for both reference and gpu-computed results)
    VertexId    *reference_labels       = (VertexId*)malloc(sizeof(VertexId) * graph.nodes);
