DSC516/EPL602: Cloud Computing

Assignments

DSC516/EPL602: Cloud Computing
Projects

Assignments and Projects

Assignment 1

Please create an account on edstem and use the following link https://edstem.org/eu/join/dc2yRD to join the edstem forum for DSC516/EPL602 that has been set for class communication, announcements, etc.

Assignment 2

Question 1:

Suppose a biology lab creates 2 TB of new data for every wet lab experiment. A computer the speed of one EC2 instance takes 0.5 hour per GB to process the new data. The lab has the equivalent 5 instances locally. Explore the tradeoffs between computing the experiments in house, on Amazon, on Google Cloud, and on Microsoft’s Azure.

Question 2:

Considering the cost analysis presented in Jim Gray report, and the updated analysis presented in Table 5 of the "Above the clouds: A Berkeley view of cloud computing. University of California, Berkeley, Technical Report No. UCB/EECS-2009-28" discussed in class, your task is to update Table 5 with 2023 cost estimates of computing, storage, and networking. Explain where you got your data and provide references to the sources used.


Semester Projects

Generative ML models deployment on AWS lambdas

Team: S. Efi, L. Charalambos

Generative AI has significantly impacted our daily lives by offering a diverse range of support for various tasks, including survey creation, text generation, text-to-image conversion, and more. While many of these models are initially developed as closed-source solutions, a wide array of such models are now publicly accessible. Machine learning repositories have played a crucial role in democratizing generative machine learning by providing pre-trained models that are readily deployable without the need for extensive retraining on separate datasets. In this context, small and medium-sized enterprises (SMEs) that integrate these models into their daily workflows often seek cost-effective methods to minimize execution expenses. One such method involves leveraging serverless computing and its Function as a Service (FaaS) programming paradigm. However, a significant challenge arises as companies cannot guarantee the accuracy and performance of these generative models until they are deployed and tested in real-world scenarios. To address these issues, this exercise focuses on enabling students to create a simple API utilizing AWS Lambda functions. They will deploy a set of generative models designed for text and/or image generation. Throughout this process, students will become acquainted with the Hugging Face models repository, AWS Lambda functions, and the AWS Chalice library, which offers a user-friendly programming interface for AWS Lambda development. Finally, students will formulate a series of queries and employ workload generation software, such as Taurus, to conduct comprehensive evaluation tests, covering aspects like latency, throughput, cold start times, and more.

Tools & libraries: Note: Students should create an AWS account and spend their free credits for this exercise

Building a generative AI-enabled chatbot for generating Fog/Edge Emulation deployments

Team: L. Antonis, Ch. Andreas, P. Panagiotis

Developing a generative AI-powered chatbot tailored for Fog/Edge Emulation deployments represents an exciting convergence of cutting-edge technology. This endeavor draws inspiration from the capabilities of advanced Generative AI models such as ChatGPT, which excel in comprehending and generating human-like text. The primary objective here is to harness the potential of these models to streamline and enrich the process of configuring Fog/Edge Emulation systems. To achieve this, students will design a user-friendly API that allows clients to submit their requirements for a Fog Computing infrastructure. The system will then extract relevant information from these inquiries and augment them with the corresponding context. This augmentation will be achieved through the implementation of prompt engineering techniques and in-context learning. Subsequently, the system will transmit these enhanced queries to a powerful large language model (LLM), such as the ChatGPT API, and relay the LLM's responses back to the client. Students will consider Fogify as the underlying emulation engine, and to facilitate their prompt engineering, they will utilize the modeling abstractions provided by Fogify's dedicated documentation page.

Tools & libraries: Note: Students may need to create an OpenAI account to use the ChatGPT API

Federated Learning Performance Evaluation for different models and libraries

Team: T., Fedor, T., Grigorii, C., Panikos

Federated Learning (FL) is transforming the realm of Artificial Intelligence (AI) by enabling collaborative model training among multiple clients in a distributed manner. With FL, geo-dispersed and sensitive data such as personal activity, bio-signals and financial records remain localized and unexposed to the other collaborators during training. FL embraces a client-server model in which training of model(s) is performed at the data origins and the FL server is focused on training coordination and the aggregation of model weights. There are FL frameworks through which users can introduce their models selecting only FL parameters like aggregation function, number of rounds, etc. Unfortunately, most of them need users to write different code to use different DL libraries (e.g., tensorflow, pytorch, etc.). In this work, students will alleviate this difficulty by integrating a general purpose FL system, namely flower, with a deep learning library, namely keras core, that allows users to write their models once and change the backend ML execution engine (TensorFlow, JAX, and PyTorch) by only changing a parameter. Moreover, keras provides a set of pre-defined models with their datasets. Based on these models, students would be able to evaluate the performance of different ML backend libraries, FL parameters (like aggregation algorithms), and so on.

Tools & libraries:

Edge Application use-case deployment on various emulation frameworks

Team: Ch., Stelios, T., Chr., Katerina

Fog and Edge Computing is emerging as a dominant paradigm that bridges the computing and connectivity gap between sensing devices and latency-sensitive services. However, experimenting with and evaluating IoT services can be a formidable task, entailing manual configuration and deployment of a blend of geographically dispersed physical and virtual infrastructures, each with distinct resource and network requirements. This often leads to suboptimal, costly, and error-prone deployments due to unexpected overheads not initially considered during the design phase and conditions that do not accurately reflect the end-user environment. To address these challenges, users turn to Fog and Edge computing emulation frameworks that leverage cloud-based technologies, such as containers, to assess their applications before actual deployment. In this exercise, students will compare various emulation frameworks to highlight their key limitations, such as scalability, learning curve, and programmability. Students can leverage pre-existing containerized applications (e.g., Fogify’s demo) and deploy them on Fog and Edge Computing emulation frameworks like Containernet, Marvis, MaxiNet, etc. Subsequently, they will submit the generated codebase along with a report describing the challenges encountered during the process.

Tools & libraries:

Parameter tuning for AWS Big Data deployments

Team: A. Maria, K. Ioannis
In the realm of cloud computing, users possess the flexibility to fine-tune their cloud configurations in order to align them with their specific performance and cost objectives. This becomes particularly vital in the context of big data applications, which often involve extended execution times. The selection of the appropriate cloud virtual machine (VM) carries substantial implications for both performance and economic factors. To address this challenge, a wealth of datasets stemming from real-world Big Data execution scenarios on cloud infrastructures is available. Researchers leverage these datasets as foundations for the implementation of optimization strategies. In this exercise, students will delve into one such dataset, offering a comprehensive collection of performance metrics derived from big data workloads running across a wide array of cloud configurations on Amazon EC2. Each configuration in this dataset consists of a specific virtual machine (VM) type and a variable number of identical VM instances. The dataset encompasses both single-node and multi-node settings. The former comprises 18 distinct VM types, while the latter encompasses 69 configurations, comprising 9 different VM types and various VM quantities. Equipped with this dataset, students will undertake the task of constructing an automated pipeline. This pipeline accepts as input the nature of the big data process and a designated object, subsequently identifying a configuration that approximates the optimal one. This is achieved by applying auto-parameter tuning techniques, a well-established methodology drawn from the field of machine learning. To facilitate this, students will use machine learning optimization libraries, such as Optuna, to deploy these techniques in the realm of infrastructure configuration for cloud computing deployments. Tools & libraries: