Routing and Computing
Devadharson Sasikumar, Sri Surapaneni,Soham Kulkarni, Jonathan Liu: 11/30/23
Fault Tolerance
Sri Surapaneni
In this representation, each computer will be represented by a letter and each connection between them being a line.
- Slow Network
- One path connects all computers
- Not Fault Tolerant
A fault is an obstruction of one of the lines seen in the image, in literal terms an obstruction and loss of connection and communication between the computers.
Fault tolerance is what will happen to the network if one of those lines are shut down.
Do you know why the top image is not fault tolerant?
How Redundancy Helps Fault Tolerance
In this diagram, each computer is linked to another computer multiple times.
In this representation if one of the computer's communication lines is severed, it is more fault tolerant for it has other routes it can take to reach the same computer.
If a computer has multiple routes to the same computer it is conisdered "redundant"; however, that is not a bad thing, because with only one route the network may be slower, and it is safer.
- Fast Networking
- Multiple Paths
In this diagram, is the network fault tolerant if we broke one communication line in any location?
In this diagram, is the network fault tolerant if one of any of the lines break
All of this represents the network and internet, the letters represent devices such as our computers in class right now, and the wires are inside of our computer, redundancy increases reliability on the internet and scales it to more people.
As a matter of fact: your room probably has 2 doors to exit
Fault Tolerance Continued
Soham Kulkarni
So if you remove a line, then we know that the network breaks, and it says that if a device or connection fails, then the data will be sent through another route. We also learned that fault tolerant networks are reliable and strong. So here are hacks:
Which of the following is NOT a fault-tolerant network?
A. Data has more than one path to travel from one device to another.
B.If part of the network fails, the network sitll functions via alternative path
C.Data will only take one route from one device to another, no matter the number of routes available.
D. More devices creates more connections and makes the network stronger.
Here is another example, what would make this network fault-tolerant?
A, because if you remove the wire, then there will be no connection, but if you add it, there are multiple paths and you would create a strong, fast network Fault tolerance is a really important thing in the internet as it creates multiple paths and connects all of us to it. If a connection fails, there are multiple other paths.
Computing
Jonathan Liu and Deva Sasikumar
Parallel and Distrubuted Computing
What is it?
- Parallel computing: Using multiple processors or cores to execute a single program simultaneously.
- Distributed computing: Connecting multiple computers over a network to solve a common problem.
- Communication overhead: Time spent exchanging data between processors
- Synchronization: Ensuring that tasks are executed in the correct order
- Load balancing: Distributing tasks evenly among processors
- Scientific computing: Weather forecasting, molecular modeling
- Engineering simulations: Crashworthiness tests, fluid dynamic
- Data analysis: Gene sequencing, image processing
- Artificial intelligence: Machine learning, natural language processing
- Executing tasks one after the other, in a single processor or core
- Simplicity: Easier to program and debug
- Limited hardware: Common in older computers or embedded systems
- Task dependencies: When tasks depend on the output of previous tasks
- Total execution time is the sum of individual task execution times
Parallel Computing: Code gets broken into small sequential operations performed simultaneously Parallel computing schedules tasks that get executed at the same time Done on the same computer Parallel consists of parallel portion and sequential portion Comparing efficiency = comparing the time it takes to perform the task
Why: Hardware driven: multiple processors Link hundreds of cpu together Data: lot of data gets processed same way (SIMD) (Single Instruction Multiple Data) Solutions use parall computing scale effectively
Quick Question:
Assuming there are 4 cores, Core 1's task takes 45ms Core 2's tasks takes 50ms Core 3's tasks take 30ms Core 4's tasks take 40ms, How long will the program take to run?
Distributed computing: Google web search: google sends request to thousands of servers Web services: (protocols like soap rss rest) Beowolf clusters: special software to group different computers together Distributed: Uses more than one computer Needs network Is a mix of seq and par Takes longer based no network
Homework:
Question 1: What is parallel computing? Question 2: If there is a computer with 3 cores that can each take one task, and the tasks are 25ms, 632ms and 100ms in run time respectively, how long will the program take to run? Question 3: Is sequential or parallel computing more efficient, and why? Question 4: What is the term called when a network has multiple paths leading up to one destination? (Used in fault-tolerant systems) Question 5: Using the image above, is this fault tolerant?Due Dec 5th (Tuesday), at 8:30 AM, submit your answers to us on Slack