Depending on which constructor is invoked, m_id or m_compute_program_id can end up in an uninitialized state. We should ensure that the object is completely initialized to something deterministic regardless of the constructor taken.