We discuss the impact of clouds and grid technology on scientific computing using examples from a variety of fields -- especially the life sciences. We cover the impact of the growing importance of data analysis and note that it is more suitable for these modern architectures than the large simulations (particle dynamics and partial differential equation solution) that are mainstream use of large scale "massively parallel" supercomputers. The importance of grids is seen in the support of distributed data collection and archiving while clouds are and will replace grids for the large scale analysis of the data. We discuss the structure of algorithms (and the associated applications) that will run on current clouds and use either the basic "on-demand" computing paradigm or higher level frameworks based on MapReduce and its extensions. Looking at performance of MPI (mainstay of scientific computing) and MapReduce both theoretically and experimentally shows that current MapReduce implementations run well on algorithms that are a "Map" followed by a "Reduce" but perform poorly on algorithms that iterate over many such phases. Several important algorithms including parallel linear algebra falls into latter class. One can define MapReduce extensions to accommodate iterative map and reduce but these have less fault tolerance than basic MapReduce. We discuss clustering, dimension reduction and sequence assembly and annotation as example algorithms.