I believe nmap is suitable for scanning large number of IPs. I myself have scanned only /16 subnets with nmap but HD Moore in 2012 scanned the [entire Internet through nmap][1]entire Internet through nmap. All you need is play with the command line arguments of nmap. The ones HD used for scanning the Internet were:
- --min-rate=5000 -m 256 --min-host-group=50000 -PS -p
- Match --min-rtt-timeout to --max-rtt-timeout
So I guess nmap can be quite effective. If it is capable of scanning the entire IP range over Internet, it won't have any problem fulfilling your requirements. [1]: http://critical.io/