Skip to main content

High Performance Computer Architecture

Credits
6
Types
Compulsory
Requirements
This subject has not requirements , but it has got previous capacities
Department
AC
Web
https://ccbda-upc.github.io/mei/
Cloud computing is a service model for large-scale distributed computing based on concentrated infrastructure and a set of collaborative services over which applications can be deployed and run over the network.

This course about Cloud computing has a mainly practical approach dealing with the related technologies. While the explained concepts apply to any application, the classes pay particular attention to the creation of Big Data Analytics applications on the Cloud.

In the lectures of this course, the students will learn the principles and the state of the art of large-scale distributed computing in a service-based model. Students will study how scale affects system properties, models, architecture, and requirements.

Regarding principles, this course looks at how scale affects systems properties, issues (such as virtualization, availability, locality, performance, and adaptation), system models, architectural models, environment and application requirements (such as fault tolerance, content distribution). This course also reviews state of the art in resource management of cloud environments (composed of different types of platforms and organization) to support current applications and their requirements.

In the laboratory sessions of this course, the students will gain a practical view of the latest in Cloud technology to implement a prototype that meets a business idea created by a student. The students will begin by building an essential toolbox to get started in the Cloud. They will later have to practice with APIs, the doors in the Cloud. All these things together will allow the students to mine the deluge of data coming from the Cloud or use new advanced analytics services provided nowadays by the Cloud. Finally, they will look under the hood of these high-level analytics services in the Cloud, either regarding software or hardware, to understand, how to meet high-performance requirements.

Teachers

Person in charge

Others

Weekly hours

Theory
2
Problems
0
Laboratory
2
Guided learning
0
Autonomous learning
7.11

Competences

Especifics

  • CTE1 - Capability to model, design, define the architecture, implement, manage, operate, administrate and maintain applications, networks, systems, services and computer contents.
  • CTE2 - Capability to understand and know how to apply the operation and organization of Internet, technologies and protocols for next generation networks, component models, middleware and services.
  • CTE3 - Capability to secure, manage, audit and certify the quality of developments, processes, systems, services, applications and software products.
  • Generic

  • CG4 - Capacity for mathematical modeling, calculation and simulation in technology and engineering companies centers, particularly in research, development and innovation tasks in all areas related to Informatics Engineering.
  • CG5 - Capacity for the development, strategic planning, leadership, coordination and technical and financial management of projects in all areas of Informatics Engineering, keeping up with quality and environmental criteria.
  • Entrepreneurship and innovation

  • CTR1 - Capacity for knowing and understanding a business organization and the science that rules its activity, capability to understand the labour rules and the relationships between planning, industrial and commercial strategies, quality and profit. Capacity for developping creativity, entrepreneurship and innovation trend.
  • Teamwork

  • CTR3 - Capacity of being able to work as a team member, either as a regular member or performing directive activities, in order to help the development of projects in a pragmatic manner and with sense of responsibility; capability to take into account the available resources.
  • Appropiate attitude towards work

  • CTR5 - Capability to be motivated by professional achievement and to face new challenges, to have a broad vision of the possibilities of a career in the field of informatics engineering. Capability to be motivated by quality and continuous improvement, and to act strictly on professional development. Capability to adapt to technological or organizational changes. Capacity for working in absence of information and/or with time and/or resources constraints.
  • Reasoning

  • CTR6 - Capacity for critical, logical and mathematical reasoning. Capability to solve problems in their area of study. Capacity for abstraction: the capability to create and use models that reflect real situations. Capability to design and implement simple experiments, and analyze and interpret their results. Capacity for analysis, synthesis and evaluation.
  • Basic

  • CB7 - Ability to integrate knowledges and handle the complexity of making judgments based on information which, being incomplete or limited, includes considerations on social and ethical responsibilities linked to the application of their knowledge and judgments.
  • CB8 - Capability to communicate their conclusions, and the knowledge and rationale underpinning these, to both skilled and unskilled public in a clear and unambiguous way.
  • Objectives

    1. Present the student with new execution environments required to manage the computing resources and simplify the development and integration of the different types of applications and services at nowadays Internet-scale systems.
      Related competences: CTE1, CTE2, CTR6, CTR1,
    2. Collaborate in the design, implementation and presentation of a cloud computing environment that is required for a class project.
      Related competences: CTE1, CTR3, CTR5, CTR6, CB7, CG4, CG5, CTR1,
    3. Find and understand useful information to create innovative solutions.
      Related competences: CTE2, CTE3, CB8, CG5,

    Contents

    1. Lectures: Cloud Computing fundamentals
      Fundamental concepts: The effect of scale on system properties.
      ---- Issues in large-scale systems: virtualization, service orientation and composition, availability, locality, performance and adaptation.
      ---- Models for large-scale systems: system models for analysis, architectural models and service/deployment models.
      ---- Scaling techniques: basic techniques, scalable computing techniques for architectural models.
      ---- Middleware and Applications: computing, storage, web, content distribution, Internet-scale systems or services.
      ---- Environment and applications requirements.
    2. Laboratory sessions: Practical view of Cloud Computing
      Big Data Analytics in the Cloud
      ---- APIs: The Doors in the Cloud
      ---- Current required layers in Big Data Software Stack
      ---- New Software requirements for Advanced Analytics
      ---- New Hardware requirements for Advanced Analytics
    3. Assigment: Experimental part
      Development of a prototype application using Cloud service offerings (such as AWS, Google AppEngine, Open Stack, OpenNebula)
      ---- Development of a prototype application using advanced analytics services either provided regarding APIs or Software as a Service.

    Activities

    Activity Evaluation act


    Presentation of the subject and Introduction to Cloud Computing and Big Data Analytics


    Objectives: 1
    Theory
    4h
    Problems
    0h
    Laboratory
    0h
    Guided learning
    0h
    Autonomous learning
    4h

    Virtualization


    Objectives: 1
    Theory
    2h
    Problems
    0h
    Laboratory
    0h
    Guided learning
    0h
    Autonomous learning
    4h

    Cloud Computing Architecture


    Objectives: 1 3
    Theory
    6h
    Problems
    0h
    Laboratory
    0h
    Guided learning
    0h
    Autonomous learning
    12h

    Best Practices for creating SaaS


    Objectives: 2 3
    Theory
    2h
    Problems
    0h
    Laboratory
    0h
    Guided learning
    0h
    Autonomous learning
    4h

    Cloud Security


    Objectives: 1 3
    Theory
    4h
    Problems
    0h
    Laboratory
    0h
    Guided learning
    0h
    Autonomous learning
    8h

    Shared Knowledge on current trending topics


    Objectives: 1 3
    Theory
    4h
    Problems
    0h
    Laboratory
    0h
    Guided learning
    0h
    Autonomous learning
    12h

    Collaborative class project


    Objectives: 2
    Theory
    5h
    Problems
    0h
    Laboratory
    11h
    Guided learning
    0h
    Autonomous learning
    36h

    Lab 1: Basic knowledge toolbox


    Objectives: 2 3
    Theory
    0h
    Problems
    0h
    Laboratory
    2h
    Guided learning
    0h
    Autonomous learning
    2h

    Lab 2: Doors in the cloud


    Objectives: 2 3
    Theory
    0h
    Problems
    0h
    Laboratory
    2h
    Guided learning
    0h
    Autonomous learning
    2h

    Lab 3: Basic use of the cloud


    Objectives: 2 3
    Theory
    0h
    Problems
    0h
    Laboratory
    2h
    Guided learning
    0h
    Autonomous learning
    2h

    Lab 4: Use of services programmatically through their API


    Objectives: 2 3
    Theory
    0h
    Problems
    0h
    Laboratory
    2h
    Guided learning
    0h
    Autonomous learning
    2h

    Lab 5: Deploy a custom web app using additional cloud services


    Objectives: 2 3
    Theory
    0h
    Problems
    0h
    Laboratory
    2h
    Guided learning
    0h
    Autonomous learning
    2h

    Lab 6: Run a custom web app in the cloud


    Objectives: 2 3
    Theory
    0h
    Problems
    0h
    Laboratory
    2h
    Guided learning
    0h
    Autonomous learning
    2h

    Lab 7: Continuous Integration, Continuous Delivery, and Observability


    Objectives: 2 3
    Theory
    0h
    Problems
    0h
    Laboratory
    2h
    Guided learning
    0h
    Autonomous learning
    2h

    Lab 8: Serverless applications


    Objectives: 2 3
    Theory
    0h
    Problems
    0h
    Laboratory
    2h
    Guided learning
    0h
    Autonomous learning
    2h

    Teaching methodology

    Lectures, reading, and discussion of technical and research papers, Presentation of topics (and papers) by students. Laboratory sessions and a practical class project.

    Students are required to bring their laptops to carry out the laboratory sessions and the practical class project.

    Students are responsible for their Amazon Web Services (AWS) account, which serves as their cloud computing service provider.

    Evaluation methodology

    Students will be evaluated on their participation in class, laboratory sessions, class attendance, reading and presenting reports and papers and assignments on specific topics.

    The final grade for the course is the weighted average of the grades for the following components obtained in each part of the course:
    · Lab sessions: 40%
    · Papers Reading/Presentation and homework: 10%
    · Course Projects: 30%
    · Final exam: 20%

    In order to be able to publicly defend the course project, students must have attended at least 70% of the classes and teams must have delivered on time the activities that have been planned during the course. The course project is the result of teamwork, which will be reflected in the grade given to the group as a whole. Each member of the group will be responsible for part of the project and might be graded individually on his or her contribution.

    Bibliography

    Basic

    Previous capacities

    General knowledge of:
    - TCP/IP networking
    - Operating Systems basic administration and use of the operating system from the programs
    - Software development

    Basic knowledge of:
    - Unix command line.
    - Python programming language.
    - Git version control system.

    Warning. Students are supposed to have the above background before starting the laboratory sessions. Complimentary fast-paced materials will be provided before class to help students meet the above requirements.