is it possible to issue a dist.all_reduce call across the nodes using the NCCL backend.

This is definitely supported.
Your code seems correct to me, according to the launch utility tutorial.
Just my guess, have you tried to specify world_size arg in init_process_group?
Or have you tried to use TCP as the init_method? Like init_method="tcp://{}:{}".format(args.master_addr, args.master_port)
@mrshenli Any idea?