Everest: cloud platform for publishing, execution and composition of computing applications in a distributed environment


Project website: http://everest.distcomp.org/

Modern research is built around sharing not only knowledge but also tools based on this knowledge. Publishing an algorithm in a paper doesn't mean it can be quickly applied in practice. A computer program that implements the algorithm is what really brings theory to practice. However, even though more and more researchers rely on computers to do their research, there are still no established ways to share or publish scientific applications in an easily accessible form.

Everest enables researchers to quickly publish their applications as web services. Published applications can be easily accessed via web browser without the need to download and install software on the user's computer. A researcher can send a link to his application to colleagues and they can immediately run the application on their data. This approach also makes it possible to easily update an application, control and measure its use.

In their research scientists usually rely on or combine multiple applications. Having to manually copy data from one application to another quickly becomes impractical and impacts the productivity. Therefore researchers need tools that could help them to assemble applications into custom pipelines or workflows and automate the execution of such workflows.


Architect of Everest cloud platform

Everest natively supports application composition by providing a uniform programming access to all published applications. Researchers can use programming tools or visual editors to assemble applications into workflows and then publish workflows as new applications sharing them with colleagues. A programming access also enables integration of Everest applications into traditional desktop scientific environments.

Many scientific problems require massive amounts of computing power. Therefore researchers actively rely on high-performance resources for running computationally intensive applications. However, even though there are many computing resources available today for researchers, it requires a special expertise to harness the power of these resources. Most researchers do not have such expertise and need tools that could help them to run applications on available resources.

Everest enables researchers to easily attach to the platform their computing resources and use them to run applications. It implements all actions required to execute an application on a resource without manual intervention. Everest also automatically selects the best resources and schedule jobs as to minimize the application run time. The ability to attach resources also makes it possible to avoid the need for building and operating an expensive computing infrastructure by Everest itself.

All these features make Everest a unique platform that increases the productivity, supports collaboration and fosters innovations in all fields of science that use computing.