The ability to exploit emerging exascale computational systems will require a careful review and redesign of core numerical algorithms and their implementations to fully exploit multiple levels of concurrency, hierarchical memory structures and heterogeneous processing units available in these computational platforms. In this talk, the constraints imposed by these architectures allowing the conception of smart co-design algorithms will be highlighted. Following this insight, the "unite and conquer" approach to solve linear systems of equations and eigenvalue problems for extreme scale computing will be presented. Unite and conquer approach focuses on decreasing the number of restart cycles in restarted numerical methods by coupling either synchronously or asynchronously several restarted methods called co-methods. In the end of a restart cycle, each co-method locally gathers available results of all collaborating co-methods and selects the best one in order to create its restarting information. This can permit the global reduction of the number of cycles to convergence. The properties of these methods that make them well adapted to large-scale multi-level parallel architectures and highlight the generality of the approach will be discussed. Some experiments validating the approach for unite and conquer Krylov methods on several parallel platforms will be presented.