A scalable mark-sweep garbage collector on large-scale shared-memory machines