Added Lecture0

master
Stefan 3 months ago
commit 235877e827

5
.idea/.gitignore vendored

@ -0,0 +1,5 @@
# Default ignored files
/shelf/
/workspace.xml
# Editor-based HTTP Client requests
/httpRequests/

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/notes.iml" filepath="$PROJECT_DIR$/.idea/notes.iml" />
</modules>
</component>
</project>

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="WEB_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$">
<excludeFolder url="file://$MODULE_DIR$/.tmp" />
<excludeFolder url="file://$MODULE_DIR$/temp" />
<excludeFolder url="file://$MODULE_DIR$/tmp" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

@ -0,0 +1,215 @@
# Computer Organization - Lecture 0
**Welcome note**: [Alexndru saying computer](https://www.youtube.com/watch?v=13-roELn-ZE&pp=ygUYYWxleGFuZHJ1IGlvc3VwIGNvbXB1dGVy) 😂
## Rules of engagement
- [Mentimeter](https://www.menti.com/)
- Open Discussion
- Volume-first, first-served
- Message responsibly, _menti messages are verified by TAs_
- Arriving late is not a problem, enter through the back door
- **GOOD**: About tech issues, questions and answers about the topics
- **NOT GOOD**: Unrelated to the lecture
- **BAD**: About a colleague
- **VERY BAD**: Abuse of colleagues
## Massivizing computer systems
[@L Research](https://atlarge.science/about.html)
1. Improve the ives of millions through impactful research
2. Educate the new generation of top-quality, socially responsible professionals
3. Make innovation available to society and industry
## Golden age of massive computer systems
We live in the golden age of massive computer systems. The world is changing at an unprecedented pace, and the digital
revolution is at the core of this change.
### Generality of massive computer systems
Everything depends on massive computer systems (networks). Massive computer systems touch every field of human activity.
- **Healthcare**: From the moment you are born, your health is monitored by massive computer systems.
- **Transportation**: Even checking in with [NS](https://www.ns.nl/en) to see if the train is on time is dependent on
massive computer
systems.
- **Finance**
## Decision-making (AI)
AI based approaches (ML, LLM etc.) are used to make decisions for us. We need large computer systems to make these
decisions for us.
- **AI**: Massive computer systems are used to make decisions for us.
Throw a lot of data to science and technology, as well as to datacenters and supercomputers.
## Example: PokemonGO
What is the software stack behind PokemonGO? Why does it rely on a server infrastructure instead of just running on your
phone.
- **Server**: The server is the one that tells you where the Pokemon are.
- **Resource Manager and Scheduler**: Software that handles client connections.
- **Database**: Stores the state of the game.
- **Datacenter efficiency**: The game is played by millions of people, so the datacenter has to be efficient. The server
uses more electricity than your laptop could ever handle.
## Using reproducible, complex workflows
A workflow is a set of tasks with a specific goal. We only now start to understand how to build such workflows such that
they are reproducible and efficient.
## Delivering serverless computing properties
Automation (aka serverless) is the future of computing. We are moving towards a world where we don't have to worry about
the infrastructure.
## Downsides of "The Golden Age of Computer Systems"
- **Energy consumption**: The energy consumption of datacenters is a big problem.
- **Jevons paradox**: The more efficient we make datacenters, the more we use them.
<br>Power consumption of datacenters is growing at an alarming rate. **>1% -> >3%**
<br>Everyone wants to use powerful, cheap computer systems, but we cannot afford them.
## Teaching team
- **Lecturer**: Alexandru Iosup
- **Course coordinator**: Tiziano De Matteis
- **TA 2**: Radu Nicolae
## Principles and methods discussed in this course
- **CPU (Central Processing Unit)**
**Extra lectures:** (not part of the exam)
- GPU (Graphics Processing Unit)
- FPGA (Field Programmable Gate Array)
- Domain Specific Architectures
- DPU (Data Processing Unit)
## Moore's Law
- **Moore's Law**: The number of transistors in a dense integrated circuit doubles about every two years.
- We estimated that Moore's Law will end in 2025, but it seems that it will end sooner.
## Complexity grows
Complex, distributed ecosystems do not act like regular computer systems.
**Ecosystems don't have easily**
- Simplicity
- Maintainability
- Responsibility
- Sustainability
- Usability
**which includes**:
- Synchronization
- Consistency, consensus
- Performance
- Scalability, elasticity
- Availability, reliability
- Energy efficiency
Operational goals are becoming more complex.
## Course goals
Gain fundamental knowledge about the **organization** and **architecture** of computer systems.
- **Architecture**: The _what?_ = all high-level design aspects
- Lets programmers interact with the system
- Lets system designers explain what the system components do
- **Organization**: The _how?_ = all low-level design aspects
- How to design and make the system components that implement an architecture
- Circuits, memory types, signals, making things tick
_**Reality is the ultimate check**_.
## Part of the Course Goals
- **Performance** = how well does the system work?
- **Sustainability** = how much can the system do with a limited energy stream?
- **Scalability** = what is the performance limit **wrt / users**, workload, etc.?
- **Elasticity** = how to scale elastically with the need for performance?
## Gamification
Take any path that you want. The more you learn, the more points you get.
- Lectures
- Tutorials
- Golden Exercises (before and after tutorials)
- Self-Study (**1-6** people)
- (Many) Quizzes
- Labs (Assembly)
- Exams (Mandatory)
### Points
**Total**: 17850 points
To pass the course, you need **5500 points**. To excel, you need 9750 points.
| Topic | Points |
| :--------------: | :----: |
| Lecture Activity | 700p |
| Golden Exercises | 500p |
| Self-Study | 1500p |
| Labs (Assembly) | 4900p |
| Surprise Quizzes | |
| Exams | 8000p |
### Concept
After you solve mandatory assignments, you have access to _bonus lab assignments_.
If you have more than **10000 points** you get invited to extra lectures.
Good academic behaviour is rewarded.
### Tutorials
(500+) points
- 5-10 minutes / exercise - try to solve individually
- Golden exercise: 50 points each, 1 before and 1 after the tutorial
### Self-Study
(1500+) points
- Solving exercises from the course book (A or B)
- Points per completed Chapter
## Tutorial & Self Study - Sneak Peek
```
Constructing an OR with NANDs
```
## Assembly Labs
Why assembly? **Mandatory**
- You do not really apply theoretical concepts that much in practice, so we will do that with assembly.
- You will learn how to write assembly code.
- It's not only about assembly programming, it's also about understanding how to solve complex problems with simple (
simples) building blocks.
Why is assembly still relevant?
- Performance 7 Predictability
- Security
- Operating Systems / Device drivers
### Formalities
- **When?**: Starting Week 3
- **What?**: x86-64 Assembly Programming, 4 mandatory labs (500 points), 6 Extra Assignments (4150 points)
- **How?**: In groups of 1-2 students. Automated tests on CodeGrade. In person hand-in - explain your code
Loading…
Cancel
Save