On the Opportunities of Green Computing: A Survey