You are on page 1of 60

Contact Session 2

July 29, 2023, 10:12AM


2h 5m 36s

LUCY J GUDINO . started transcription

RAHUL KUMAR BURNWAL . joined the meeting

SOUMEN JOARDER . joined the meeting

ANJALI VISHVAJIT JUIKAR . joined the meeting

VENUS VARSHA . joined the meeting

LUCY J GUDINO . 0:22


OK.
Good afternoon.
Last class we discussed about motivation behind using distributed computing basic
concepts in various computing computer system paradigms.
We discussed about multi computer system multiprocessor system and things like
that.
Uh, do you have any doubts regarding last lecture?
GOPAL fine.
So if you don't have any questions to ask, let us get started with today's lecture on
remaining portions of lecture.

KOTA NAGA VENKATA KARTHEEK . left the meeting

LUCY J GUDINO . 1:03


One uh last class.
I couldn't complete all the slides.
I I think I stopped discussion at this point.
I was talking about Flint's classification of multi, you know.
Ohh parallel computing paradigm, so that is what we were discussing.
There are four types.
SISTSIMDMISTMIMD so quickly revise this, and then we'll see the rest of the topics.

KOTA NAGA VENKATA KARTHEEK . joined the meeting

LUCY J GUDINO . 1:33


Umm you?
Yes, I AM D system we have, you know, no.
Yes, Sir.
Yes, Sir.
Yes, T system we have single processor where we can achieve parallelism by having
instruction level parallelism, pipelining in case of SIMD that is single instruction
stream multiple data stream.

SIVAKRISHNA TV . joined the meeting

LUCY J GUDINO . 1:57


This kind of system usually have multiple processes.
Their multicore are multiple processes and each of the processor is fed with the same
instruction stream and operates on different data streams.
Best example is vector processor array processes in Yammer IST that is multiple
instruction stream, single data stream, multiple processors execute different
instruction sequence but operates on the same data string.

PRADYUMNA KUMAR MOHANTY . joined the meeting

SOUMEN JOARDER . left the meeting

BHANJA ANTARYAMI . joined the meeting

LUCY J GUDINO . 2:35


So this type of system is implemented out of research curiosity, but never
implemented for practical application.
Last one is multiple instruction multiple data stream that is MIT MIMD.
So the distributor system is MIMD.
So here we have multiple processes.

GIRIJA AJAY JOSHI . joined the meeting

LUCY J GUDINO . 3:00


All the processes simultaneously execute different instruction sequences on different
data sets.

S.S. PAVAN KUMAR MARLA . joined the meeting

LUCY J GUDINO . 3:09


Examples include SMPS then clusters new.
So all these things comes under.
Yeah, my MD uh system.
There are two types of MIMD systems, and basically this classification is based on
how interprocess communication happens between various processes.
So this you should remember there are two types tightly coupled and loosely
coupled.
Tightly coupled systems are also known as shared memory systems, whereas loosely
coupled system.
Uh, it's known as distributed memory system.
You'll shared memory system.
There is a common physical memory and all processing elements can read and write
to the same memory locations.
So whenever processes wants to communicate with each other, the message that
they want to transfer that they are going to keep it in this shared memory area.
So that is how they communicate.
So then the other you know, processor can read it from that particular memory.
In case of yeah I MD distributed system, the processing elements are interconnected
via a network interconnection network ohm.
So here what happens is every node R, every processing element will have its own
local memory and whenever it wants to communicate with each other, there is no
shared memory area here.

KOTA NAGA VENKATA KARTHEEK . left the meeting

LUCY J GUDINO . 4:46


So they have to pass message over the interconnection network.

KRISHNAKUMAR V . left the meeting

LUCY J GUDINO . 4:51


So this technique, what we call it as message passing technique.

NANDAGIRI SIVAPRIYA . joined the meeting

LUCY J GUDINO . 4:57


The next question is what is the difference between multiprocessor system and multi
computer system?

KOTA NAGA VENKATA KARTHEEK . joined the meeting

SIDDESH G M joined the meeting

LUCY J GUDINO . 5:02


So we we all know roughly what is a difference multiprocessor within a computer.
We can have multiple processor or we can have multiple cores.
You know, because they are interconnected.
It could be, uh, you know, computer in a computer network or computer in a
distributed system, that's multiprocessor systems are usually MIMD shared memory
system.
Here all the processes have direct access to shared memory, so it's very, very very
nice to have, you know, shared memory thing when there are multiple processor
within a computer because you know so they are all you know located in a closer
proximity.
So it becomes.
There won't be any delay and things like that, so here all the processes you know in
the computer will have direct access to shared memory.
AMAN DEEP MALIK . joined the meeting

LUCY J GUDINO . 6:08


That is all the processor share common address piece in such a system memory
access latency that is amount of time that it requires to access the memory is seen
for any memory location from any processor.
Hence such an architecture is known as uniform access architecture, uniform memory
access architecture.
You M so you MAYUR in which memory access from any processor.
It will be safe.
The time required is safe.
That is why it is called uniform memory access architecture.

ARSHIYA SIDDIQUE . joined the meeting

LUCY J GUDINO . 6:46


The processors expected to be closer to each other and are connected to memory
modules via interconnection networks.
By default, interprocess communication happens through read write operations on
the shared memory.
It is also possible to have message passing, so it is not that you can't implement
message passing technique.
Here we can do that, but we have to do, you know, kind of humiliation.
Right.
So that is how uh, you know, we can achieve much, let's say party.
Also note that you know here all the processes are managed by single operating
system because it is located in one single computer.
Multiple processors within a computer, so all the processes are managed by single
operating system in multi computer system processes do not have direct access to
shared memory so that is first point.
Each node in the system has processing elements and its own local memory, and all
these computers are nodes are interconnected using interconnection network.
So interprocess communication may happen via shared memory or you know
message passing.
So if you want to have a shared memory, it becomes, you know, very time consuming
because somewhere some process has to write into a memory space which may be
very far off and then again the intended process may processor may have to read
that you know message from the, you know, shared memory.
It's very, very, you know, time consuming aspect.
So here what happens is even though you know multi computer system can have
common address space, but the memory access is not uniform.
So that's why it is called non uniform memory access multicomputers.
So that's the system will have varied memory access latency which depends on the
proximity of the processing element and the memory module.
So it becomes, you know, one mission may have quicker access.
The other may not have, you know, access very easily.
So that is, I mean kind of nonlinearity, I mean non uniform kind of environment.
Uh nodes in multi computing environment may have different operating systems and
very important thing.
There is no common clock.
OK, if you want to have synchronization, probably you may have to use.
You know, protocols like network, you know, time protocol and TPP kind of thing.
So there are various ways of uh, you know, interconnecting memory modules, 2
processor, the most popular ones I have listed on the slide, crossbar switching
network Omega switching, network, Hypercube Switching, network.
So these are all very basic.
Ohh.
You know, interconnection network, so I'm going to teach all of these and there are
many and many other types which you can find in, you know literature and probably,
you know existing systems use those kinds.
So these are a basic foundation.
That's why I'm teaching so others are slightly modifications to these things.
OK.
So let us first look at uh crossbar switching network.
Look at the diagram.
So the crossbar switching network consists of a matrix of switches arranged in a grid
like structure, so he just switch in the grid represents a connection point.
As you can see, is my bank.
As you can see, so this is the connection point between CPU one and M memory
module 1.
Similarly, we have one connection point here and you know there are several such,
you know connection points.
So each. Yeah.
So the number of switches in the grid is determined by the number of inputs and
outputs required by the system.
So input in the sense you know CPU and how many you know, CPU's are there, how
many memory models are there.

VINAY SANJAY SAWARDEKAR . joined the meeting

LUCY J GUDINO . 11:34


So it depends on that.
So for the given example, there are four processing elements and four memory units.
Hence we require 4x4 that is 16 switches.
This is a very simple thing, but only you know thing is when CPU one is connected to
module one, we cannot allow you know CPU two to connect to this.

SWARNAVA CHATTOPADHYAY . joined the meeting

LUCY J GUDINO . 12:00


There there will be contagious.
So that is obvious because so at that time we can have four connections.
So that is how it is.
The next connection network is Omega Switching Network, so yeah.

KARMAKAR ANKITA ASHOK . 12:13


By my question in the previous one, the crossbar.
Sorry the the matrix one, the previous slide, not this one.

LUCY J GUDINO . 12:18


Umm.
Umm yeah, tell me.

KARMAKAR ANKITA ASHOK . 12:23


I'm.
So what will be the read write like?
How will be the read write in this case the crossbar switch?

LUCY J GUDINO . 12:29


In the sense see if you want to read or write, you have to have the connection to the
memory once the connection.

KARMAKAR ANKITA ASHOK . 12:31


Yeah, yeah.
Yeah.
So the memory module is there, right?
And the like, if you have memory model and there is the like the the crossbar switch,
right? Yeah.

PRANCHAL MISHRA . joined the meeting

LUCY J GUDINO . 12:42


Now see P CPU one wants to write something on 2 memory Model 1.

KARMAKAR ANKITA ASHOK . 12:47


Umm.

LUCY J GUDINO . 12:48


So this connection should be closed.
OK, you initially connection all the connections will be open.

KARMAKAR ANKITA ASHOK . 12:52


OK.

LUCY J GUDINO . 12:56


Now if I want to have a connection between CPU one and the memory module one, I
have to close this witch.
OK, when the.

KARMAKAR ANKITA ASHOK . 13:03


So will it be on based on some priority like how?
How it will be encoded like whether like I, the CPU one will write on this memory
module?
How will it be decided in that case?

LUCY J GUDINO . 13:13


Don't see whenever we try to write.
So what is the procedure?

KARMAKAR ANKITA ASHOK . 13:17


Umm OK.

LUCY J GUDINO . 13:18


So we present the address right.
We present the address and then we say whether read needs to be performed or
write needs to be performed.

KARMAKAR ANKITA ASHOK . 13:21


Yes.

LUCY J GUDINO . 13:27


OK, so based on that, so there is one more thing.

KARMAKAR ANKITA ASHOK . 13:28


OK.

LUCY J GUDINO . 13:31


You know, control signal, which it does.
Now I want to access memory module one so connection between CPU one and
memory one you close it.
So once it is closed, it is as good as memory module one is attached to SCP-1 normal
scenario so CPU can send address control signal to whether to read or write and
accordingly hey you know data will be right darling.

KARMAKAR ANKITA ASHOK . 13:40


OK.

LUCY J GUDINO . 13:57


OK.

KARMAKAR ANKITA ASHOK . 13:58


OK, so every switch will have, yeah.
LUCY J GUDINO . 13:59
No, no, no, no, no.
You you you should ask.
You should have asked this question now supposing CPU one and CPU two both
wants to communicate with Amit Access memory module one.

KARMAKAR ANKITA ASHOK . 14:06


Umm yes.
Umm.

LUCY J GUDINO . 14:11


So how do we how do we give access?
So there are again, you know, strategies like assigning priorities to the processor
because there is something on top of it that is operating system which is going to
manage all these memory models and CPS because for operating system CPU and
memory modules are the resources, right?
So the responsibility of operating system is to manage resources in the computer.
So it has to decide.
So what purpose CPU one is using memory module one and what purpose CPU two
is using memory model who's priority is higher.
So based on that decision can be made whether to give access to CPU one or CPU.

KARMAKAR ANKITA ASHOK . 14:54


Thanks.

LUCY J GUDINO . 14:58


I hope I answered your. Yeah. Yeah.

KARMAKAR ANKITA ASHOK . 14:58


OK.
So it's kind of yes, yes.
Yeah, it's clear now.
So it is based on some priority, right? OK.

LUCY J GUDINO . 15:03


Yes, there are many.
You know, there may for Canada here fashion and things like that.

KARMAKAR ANKITA ASHOK . 15:11


Umm.

LUCY J GUDINO . 15:12


You know, scheduling is very, very important in such cases.
How?
How?
How the PR's are scheduled OK?

KARMAKAR ANKITA ASHOK . 15:22


OK.
Yeah, German.

LUCY J GUDINO . 15:23


Alright, so next.
OK, so I was talking about uh romega interconnection network.
So this particular network is often used in parallel computing systems such as cluster
supercomputers.
Uh, so basically this provides high speed communication and also efficient
interconnectivity between large number of nodes.
The basic building block of this network is known as interconnection.
Switch.
OK.
Or it is also called as interchange switch.
OK, so it has two inputs and two outputs.
Ohh, the four states of the switch is listed here.
Straight exchange, upper broadcast and lower broadcast the street in the sense so
this input will connect to this output and this input will connect to this output that is
straight connection the exchange.
The upper input connected to lower output.
Lower input is connected to upper output.
This is called exchange upper broadcast upper input is connected to both the
outputs and lower broadcast.
Lower input connected to both the outputs, so these are the four configuration.
What we can have with this particular switch?
No.
Now let us try to understand how this 8 by 8 Omega switching network works
through this particular problem, the problem statement is something like this.
Connect eat processes to 8 memory modules using 8 by 8 Omega Switching
network.
It's a yen by yen switching networks, so let me write yen by yen switching network
where yen is equal to 8.
Now we need to find out how many stages should be there in the switching network
and yeah, and in each of the stages how many switches, because this 8 by 8 Omega
switching network will have number of stages, so we need to find out how many
stages and in each stage stages how many switches we should have.
So you need to speak.
We should have yen by two switches because the switch what we have is you know
two inputs, right?
So two input means each switches capable of connecting two devices.
So we have total yen equal to 8 eat processes to connect eat processor each stage I
should have N by two, that is 4 switches.
VINAY SANJAY SAWARDEKAR . left the meeting

LUCY J GUDINO . 18:27


OK then.
D uh, you know, number of stages is computed using the following formula to
power.
Yen is equal to POK now.
Number of variance is small, N is nothing but a number of stages.
So with this, yeah, peace P RN is equal to.
So this is let me write it as yen.
So N is equal to two power N so north is nothing but number of processes.
SO2 Power N is equal to 8, so small N is equal to three.
So we require 3 stages and each stage will have 4 switches.
Is there any doubt?
Is there any doubt, any doubt?

KARMAKAR ANKITA ASHOK . 19:13


Umm.

LUCY J GUDINO . 19:17


Do you have any doubt?
No.
Suppose Singh, if he have 4 by 4 or make a network now.
Now tell me how many stages and how many switches in each stage.

KARMAKAR ANKITA ASHOK . 19:31


Four by two, that is 2 and two rates to two equal to N that is and equal to two.

LUCY J GUDINO . 19:33


Umm.

RAVINDER KUMAR . joined the meeting

LUCY J GUDINO . 19:38


So it will have two stages and each stage will have two switches.

KARMAKAR ANKITA ASHOK . 19:40


Yes.
Those switches.

LUCY J GUDINO . 19:43


OK, now we will proceed with this problem.
So this is the structure of eat by eat, you know.
Ohh yeah, we'll make our network now.
We will see how these connections are made.
OK, you can see you know the wiring right, wiring between stages.
How is it that so we'll make a network, you know, Omega network.
The connections are obtained are are defined by the rotate left of this OK Now let
me explain this. OK.
If you want, you can write this.
You know boxes 1st and then follow my instructions.
You know it will be helpful.
So first I will number all these inputs as well as output.
The one story that I'm writing, OK, now the decimal binary equivalent of decimal 0.
I will write so since there are 88 inputs so I need 3 bits to represent ohf.
This is clear.
Is there any doubt so this can be represented using 000?
So what is 1 in binary?
Can anybody tell me very good 001 then 0101 the 011?

KARMAKAR ANKITA ASHOK . 21:08


001.
010.

BAGAL SWATEJA RAMESH . 21:13


010.

KARMAKAR ANKITA ASHOK . 21:15


100011.

LUCY J GUDINO . 21:19


Next ones one umm.

KARMAKAR ANKITA ASHOK . 21:21


1001 double denial 1011110 couple one.

BAGAL SWATEJA RAMESH . 21:24


Level 3110.

LUCY J GUDINO . 21:28


Hmm, good.
Why is why?
What are you doing?
Colors are dominating.
Hmm.
I want to hear some voice.
Hmm.

DILIP K.G. . 21:38


Ladies first.
LUCY J GUDINO . 21:38
OK.
No, no, no, no.
I don't really believe in equality. Correct?
OK, alright, now what I said rotate left, right, rotate left policy.
You now if I rotate this bed pattern, what do I get if I wrote the same so zero is
connected to 0, there's no change.

KARMAKAR ANKITA ASHOK . 22:00


The same one.

BAGAL SWATEJA RAMESH . 22:02


Being they'll do.

LUCY J GUDINO . 22:07


Now if I rotate this towards left, what do I get?

KARMAKAR ANKITA ASHOK . 22:13


You know 10.

BAGAL SWATEJA RAMESH . 22:14


010.

LUCY J GUDINO . 22:14


016 what is 010 in this two?

BAGAL SWATEJA RAMESH . 22:17


Oh.

LUCY J GUDINO . 22:18


So I'm connecting this one to two.

KARMAKAR ANKITA ASHOK . 22:19


Yeah.

LUCY J GUDINO . 22:21


OK.
Next, you take up this 010.
If I rotate this, what do I get 100 which is nothing but four?

BAGAL SWATEJA RAMESH . 22:27


10044.

KARMAKAR ANKITA ASHOK . 22:28


1004.
LUCY J GUDINO . 22:31
I have connected to four, then 011.
If I rotate it to left, what do I get?
110 which is nothing but six.

BAGAL SWATEJA RAMESH . 22:39


1106.

SWARNAVA CHATTOPADHYAY . left the meeting

LUCY J GUDINO . 22:43


I have connected to 6th input.
Now 4, if I rotate this, what do I get?

BAGAL SWATEJA RAMESH . 22:50


001.

LUCY J GUDINO . 22:50


So this one comes here.
So this will be 001.

VENUS VARSHA . 22:54


001.

LUCY J GUDINO . 22:54


So I'm connect connecting to one then 101.
If I rotate this, what do I get so 011 so that that is nothing but three correct then
110?

RAHUL KUMAR BURNWAL . 23:02


You don't wanna know 11.

BAGAL SWATEJA RAMESH . 23:02


When? When?
11.

VENUS VARSHA . 23:05


Seattle.

LUCY J GUDINO . 23:09


If I rotate towards left I get 101 which is nothing but five, then 111.
If I rotate it left it it's same.

BAGAL SWATEJA RAMESH . 23:17


Sure.
LUCY J GUDINO . 23:17
So I'm connecting this similarly here.
Also, zero is connected to 01 is connected to, 2/2 is connected to four, then four is
connected to, 1/5 is connected to three, then six is connected to five and this is 6 and
seven.
Similarly, the connection is made like this, so hope this is clear how connections are
made.
No.
Why?
Why don't we connect straight?
Why have we have to connect it like this, right?

BAGAL SWATEJA RAMESH . 23:46


Hmm.

LUCY J GUDINO . 23:49


Because we want, you know, to establish connection from 1 processor to another.
OK, so this side I might have processor and this this side I might have memory
modules.
OK, so I each processor should have access to all the memory models.

VINAY SANJAY SAWARDEKAR . joined the meeting

LUCY J GUDINO . 24:11


OK, so that is what is the intention and the solution gives us, I don't know way to
connect each processor with each memory module.
Now let us look at how.

KARMAKAR ANKITA ASHOK . 24:23


Man.

LUCY J GUDINO . 24:24


Wait, wait.
How routing we can do so how can we pass you know the information from
processor to memory model or how can we read or write ohh from a memory model.
So what we follow here is, you know, actually Omega network exhibits self routing
property.
The path for a packet from a source to destination can be determined by the
destination port address.
OK, now supposing you know Keith stage.
So I here how many stages we have.
We have 3 stages, so individual stages we are going to look at individual bit of a you
know destination port.
So once we look at that, OK, so create the speech of the network looks at big key of
the tag or address.
OK.
If Big Key is 0 then send the message I sell out to a purport.
If Big Key is 1, then sends a loud that is message to lower port and it works for every
possible input port.
So let us look at whether this works properly or not.
Now supposing I want to send a message to port #4, so port #4 is here.
OK, now what I do this is 4 can be written as 100 so binary equivalent of four is 100.
Yes, speech.
This stage I'm going to look at this speech next stage.
I'm going to look at this bit and here I'm going to look at this bit now.
This is 4 at the input.
Now I'm going to locate this bit so this is equal to 1, so when it is equal to 1.
So what is the thing when bit is equal to 1 sends allowed to lower put.
So I have to send the whatever message I'm going to receive on this.
I'm going to send it to lower lower port.
OK so I have sent it so next is I have come to the second stage.
So where I'm going to look at this bit, OK, when this bit is equal to 0, I'm going to I'm
going to transfer whatever I have received at the input port to the upper one.
So this is how I do next stage.
I'm going to look at the zero.
OK, so since it is zero, I'm again sending it to a party.
Now you can see here whatever we have destined from this particular input to a port
#4 that is delivered.
You can check any combination.
It will work fine.
So can we.
Can we try from 6 to 2?
You're trying to check whether it works fine or not.
So what is the combination for input address for port #2?
What is the binary equivalent of two?

BAGAL SWATEJA RAMESH . 27:48


010.

KARMAKAR ANKITA ASHOK . 27:49


Umm.

LUCY J GUDINO . 27:49


010 correct now this is here.
OK, at this point it is 0 so it is connected like this.
OK, then it is 11 means like this.
Well, OK.
And then it is 0.
So any from any input to any output, I can make the connection.
Is there any doubt?
So someone had doubts earlier.
Any doubts you you can check three to five you check so this is P3 and this is M5 the
weather you can uh no.

MADHAVAN R . 28:35
But again, can you repeat, please, Madam?
We couldn't follow that the last.

LUCY J GUDINO . 28:40


OK, now let me take an example.
I want to connect P32M5 OK.
The first step is I need to know the destination port number.
Destination port number.
OK, So what is the destination port number?
It is 5.
It's binary equivalent.
Is 101 OK now?
At this stage I'm going to use the Ms bit.
OK, that is one at this stage I'm going to check middle bet and the last stage I'm
going to use this last bit.
OK, now P3 is here, right?
So that is connected to this switch.
So since it is one so one means lower, you have to port.
You have to connect 0 means you have to connect to Upper port so that is a
convention we have used.
So since it is one uh, I have to send it to the lower court.
OK, next.
Second switch it is equal to 00 means up, so I'm going to connect it over here.
Then it is here and then it comes to 00 means upper correct.
Hmm, next is 1, right one is lower, 1 means lower.
I'm connecting to one so I could able to connect processor three to memory module
5.
Any doubt.
So you have to remember this one means slower.
You have to connect to lower output.
Port 0 means you have to connect to upper output port.
Any any doubts you have.

MADHAVAN R . 30:44
Got it.
Thank you.

LUCY J GUDINO . 30:47


OK, no.
So the next thing is, you know very, very important.
Umm the Omega network has some problems, so that is output the you know output
port contention and path contention.
So these are the two problems.
Omega network.
Uh, the the phases.
So the path contention and output port contention can seriously degrade the
archival achievable throughput of this system.
So let me let me explain the part.
The contention now supposing I want to establish connection from P12M4 and P32.
Yeah.
OK, so this is the connection we would like to have.
So you M4 the port #4 can be written as 100 and port #5 can be written as 101 OK
Now four is here.
So it is connected to this switch.
So since it is one, So what is a convention?
One means upper or lower.

DAYALAN P . 32:07
Lower no, no.

LUCY J GUDINO . 32:08


Huh.
Lower port.

MADHAVAN R . 32:09
No. Yeah.

KARMAKAR ANKITA ASHOK . 32:09


So.

BAGAL SWATEJA RAMESH . 32:10


Word up but.

RAHUL KUMAR BURNWAL . 32:11


Sure, upper.

LUCY J GUDINO . 32:11


And zero means upper pole correct?

DAYALAN P . 32:12
About.

LUCY J GUDINO . 32:14


No one.
So it is 1 means lower port.

KALIDINDI VAMSI KRISHNA . left the meeting


LUCY J GUDINO . 32:18
So I'm going to connect to this.
OK, now 55 is also one here.
OK, so from three it is coming to this wedge.
Then I'm going to have one here.
SO1 means lower correct.

MADHAVAN R . 32:35
Yeah.

LUCY J GUDINO . 32:36


Umm 1 means lower.
OK, now you can see this has come here and this is here.
So both are coming to the last Witch of second stage.
OK, now next stage both are zero.
OK, Zero means upper, so this will connect to upper port.

RAHUL KUMAR BURNWAL . 32:54


A person.

LUCY J GUDINO . 32:59


This also will connect to Upper Port, so that means there is a clash here.
Now what to do now I cannot allow both these things to happen together, right?
I can connect either processor four are processor, now one of them I have to choose.
Let me choose processor three and then I can make connection here and the next
one is you know one and one is nothing but lower.
I make the connection so even though 2 processors wanting to access to memory
modules, I could able to give it to only one processor accessing memory model.
So this actually reduced the performance.
OK, sometimes 2 processes like.
Even and poor P3 both wanting to access memory model #4 that also leads to some
problem.
OK.
Then we have to make a decision whether P1 has should be given access PM4RP3
should be given access to M so any doubts it?

KARMAKAR ANKITA ASHOK . 34:09


Umm.
If there 8 yes, I have.
If there are eight CPU then how we will it work will not work right?

LUCY J GUDINO . 34:12


Hmm.
Eat.
KARMAKAR ANKITA ASHOK . 34:16
Yes, if it's B0 through P7.

LUCY J GUDINO . 34:17


No, you should.
That is that.
See.
Yes, all the process at them that is, that is where the role of operating system comes
into picture.
It has to manage that it it has to manage, it has to manage.

KARMAKAR ANKITA ASHOK . 34:30


How many finished one?

LUCY J GUDINO . 34:33


So it will have algorithm to manage which one to schedule first which one to
schedule next.
It will put on hold.
Now, supposing memory wants to, you know access.
Now there we know there there's going to be a contention because middle thing it
has zero, it is reaching to some somewhere in the you know in this position is going
to clash.
Then I can put one processor on board the other processor.
I cannot look.
System will work once you know the second process is finishes its access.
The earlier process can be given access to memory model that can happen.

ANJALI VISHVAJIT JUIKAR . left the meeting

LUCY J GUDINO . 35:13


So it is very see in multiprocessor system.
It's not very simple, always there will be some kind of, you know, uh, problems, you
know, so you especially shared resources.
It's going to be a problem, I think last semester when you are you are studying
introduction to parallel and distributed programming.

AMAN DEEP MALIK . left the meeting

LUCY J GUDINO . 35:38


You might have.
Uh, steady issues in multi threading issues in you know synchronization issues with
respect to mutual exclusions and things like that.

BAGAL SWATEJA RAMESH . left the meeting


LUCY J GUDINO . 35:50
So we have to log some some point in time.
We have to lock the resources for others and give access to one.

VENKATESH KODARI . joined the meeting

BAGAL SWATEJA RAMESH . joined the meeting

LUCY J GUDINO . 36:00


One of the processor so that is always the.
See basic idea is basic idea is minimize the hardware components.
That is always the focus.
So how much optimization you can do?
You have to think.
OK, so in this system not at a time, all the see if at all.
I plan it in such a way that, you know if these are the combinations work for all the 8
processes that then then it's fine.
It will work.
Only 8 processor will have 8 memory module.
They can simultaneously access OK, but when they try to access for some
combination of, you know output thought it may clash, then the operating system
are the one who is responsible for managing the resources.
Need to take a call which one needs to be given a.
OK.
The next to type is hyper tube connection, so it is another type of interconnection
network used in parallel computing and distributed uh systems.
Uh, it is designed to efficiently connect large number of nodes in a loosely coupled
system.
Interconnection network has binary NQ structure and the network comprised of P
processes where P is equal to two power N, where N is nothing but the dimension of
hypercube.
So each node in the network represents a the processor, so you can see here it's a
loosely coupled system.
That means you know it doesn't have shared memory, so all the processes, all the
nodes in the network will have only processors and processor might have, you know,
will have its own, you know, local memory.

ANJALI VISHVAJIT JUIKAR . joined the meeting

ANJALI VISHVAJIT JUIKAR . 38:13


My.
Please.

LUCY J GUDINO . 38:17


Somebody has opened the mic.
Please mute umm so each node in the processor forms a node and each processor
has direct communication part to other neighbor processes.
OK, there may be non neighbor processor but at least for neighbor processors the
processors will have direct communication.
OK, so in one cube network we can connect two nodes.
OK, in two cube node we can connect 2 to the power of two, that is 4 notes.
Similarly for three in Q3 Cube network, we can connect 2 to the power of three that
is equal to 8 nodes and four cube hypercube connection 2 to the power of 4 which is
equal to 1616 nodes.
We can connect now the next question is how to assign address to these notes.

MURTAZ SIKANDER TAHSEEN MASTIM . joined the meeting

LUCY J GUDINO . 39:26


OK, the dimension of the hypercube network is directly related to the number of bits
in the address.
For example, one queue, so one cube we need one bit address.
OK, two cube we require 2 bit address because there are four nodes 2 to the power
of two is 4.

MURTAZ SIKANDER TAHSEEN MASTIM . joined the meeting

LUCY J GUDINO . 39:50


So we need actually four addresses with the two bit combination we can have four
addresses, right?
Similarly for three Q network to address 8 nodes, we require 3 bit address then four
cube 4 betters.
So please make a note of this told to generalize this, there are two to the power of
yen distinct N bit binary addresses that can be assigned to the processes.
Also note that each processor address differs from that of each of its N neighbors by
exactly 1 bit position, so neighbouring N will differ in one bed position.

BHANJA ANTARYAMI . joined the meeting

LUCY J GUDINO . 40:42


OK, that's you should remember.
Please make a note of this point.
Very important point, OK?
Now let me teach you how to address these modes.
So in one cube 2 to the power of 1 which is equal to two, we have two nodes, so pro
P0 and P1.
Let us name these processes.
So let me do this way P0 and P1 OK P zeros address is 0 and P1's addresses.
What?
Because one tube network, we will have one bit address, then it.
Now let us look at 2 cube interconnection network.
So there are two to the power of 2 which is equal to four.
There will be 4 nodes OK now let us use this convention.
So in order to address these four nodes, we require 2 bits.
OK, two bits as B not and B1.
Let me name it as B not and B.

FAJAS F . joined the meeting

LUCY J GUDINO . 41:47


So now I will write this.
See, this is the X&Y.
So you are B, not will be X and B1 is 1.
So if I put this in XY direction, so when I'm moving towards X so the value of X
changes from zero to 1.
Now if I look look at this particular node as the origin OK, this let me mark it as P0
it's address.
Let me put it as 00, OK, so This is why this is the X.
OK, so X is equal to 0, Y equal to 0.
Then I'm moving towards CX.
OK, I'm changing the bit position at X so this becomes zero and one.
I'm naming this modest P1 OK then I'm moving upwards towards why direction X
remains same and only Y changes.
So this becomes one and zero OK and I'm going to name this as Pete and here both
X&Y changes.
If you move from here to here, so only exchanges OK why?
Why remains the same?
Why is 1 and X becomes one?
So this time naming it as P3 as you can see this node has two neighbors P1 and P2 to
the address differences.
One bet between P not and P1 because the first bit is 0 only second bit there is a
change so that is what I had mentioned.
Each processor addressed differs from that of each of its N neighbors by exactly 1 bit
position, so that is the meaning.
If you look at B2P2 is neighbor to P, not again, you can see the least significant
address is 0.
The most significant addresses one in in P2 but for P not it is 0, so one bit change.
If you look at P2 and P, what difference P3 and P1?
There is one bit difference, so this is how we do.
You know we assign addresses to various nodes.
Now when you consider three cube OK, Now I will put the three dimensions like so.
This is the XY and Z and the address is.
I'm going to put it as XYZ.
OK, now this is the starting point.
Let me decide.
I let me consider this as a starting point.
There the address is 000.
So this I name it as P not OK now you have to tell me what is the address of this.
It's me, but 2P, not one bit change should be there in that.

BAGAL SWATEJA RAMESH . 45:04


001.

LUCY J GUDINO . 45:06


So you just see here I am moving from this point towards X direction.
OK, now only exhibit of the address should change, so remaining should be same.

KARMAKAR ANKITA ASHOK . 45:15


010.

LUCY J GUDINO . 45:20


So this will be 001 OK now this time.
So 001 is nothing but what is the decimal equivalent one right?

BAGAL SWATEJA RAMESH . 45:29


1.

LUCY J GUDINO . 45:30


So now I'm marking it as P1 now.
Now you consider this one.
What is the address?

BAGAL SWATEJA RAMESH . 45:38


010.

LUCY J GUDINO . 45:40


So why is changing so this address is 010?
So what is the decimal equivalent of 010?

BAGAL SWATEJA RAMESH . 45:46


So.

LUCY J GUDINO . 45:47


It is 2 so I'm naming this as P2.

KARMAKAR ANKITA ASHOK . 45:49


2.

RAHUL KUMAR BURNWAL . 45:49


2.

LUCY J GUDINO . 45:52


OK, now coming to this.
KARMAKAR ANKITA ASHOK . 45:58
You know 11.

BAGAL SWATEJA RAMESH . 45:59


011 when when?

LUCY J GUDINO . 45:59


Umm 0.
I'm changing towards X right 011.

KARMAKAR ANKITA ASHOK . 46:07


Right, right.

BAGAL SWATEJA RAMESH . 46:07


Umm.

LUCY J GUDINO . 46:11


OK, now this is P3.
OK, now what about this?

LOKESH KATIYAR . 46:23


100.

KARMAKAR ANKITA ASHOK . 46:23


100.

BAGAL SWATEJA RAMESH . 46:24


100.

LUCY J GUDINO . 46:25


100 OK, this is P4.

KARMAKAR ANKITA ASHOK . 46:27


We.

LUCY J GUDINO . 46:27


Very good.
What about this?
This is toward sex towards sex.

LOKESH KATIYAR . 46:33


101.

KARMAKAR ANKITA ASHOK . 46:33


101 either one.
BAGAL SWATEJA RAMESH . 46:34
101.

RAHUL KUMAR BURNWAL . 46:35


From the.

LUCY J GUDINO . 46:35


If I consider this as a base, this will be 1:01, so this will be P5.
Now what about this?
You consider this?
I'm going towards white.

KARMAKAR ANKITA ASHOK . 46:46


110.

RAHUL KUMAR BURNWAL . 46:46


110110.

BAGAL SWATEJA RAMESH . 46:47


When when zero?

LUCY J GUDINO . 46:48


Ohh all are very active.
Very good piece.

VENUS VARSHA . 46:50


110 yes.

LUCY J GUDINO . 46:51


It very good.
What about this triple?

RAHUL KUMAR BURNWAL . 46:53


111.

KARMAKAR ANKITA ASHOK . 46:53


People run.

BAGAL SWATEJA RAMESH . 46:54


111.

LUCY J GUDINO . 46:55


What? The first pizza?
Very good.
VENUS VARSHA . 46:57
111.

LUCY J GUDINO . 46:58


So this is how we address.
OK, no, this is the address which is given here.
Now, how do we communicate?
OK, now let me number these nodes P0.
This is P1P 5P4.
B2B3P6 and pizza.
Now I want to communicate from B02P.
OK, I want to communicate.
So what is the path of communication that we need to find out?
So what is the address of peanut?

VENUS VARSHA . 47:42


000.

RAHUL KUMAR BURNWAL . 47:42


Some beautiful.

DAYALAN P . 47:43
000.

BAGAL SWATEJA RAMESH . 47:43


Needle needle.

LUCY J GUDINO . 47:44


What is address of P7?

RAHUL KUMAR BURNWAL . 47:47


111.

BAGAL SWATEJA RAMESH . 47:47


People want.

DAYALAN P . 47:47
But.

LUCY J GUDINO . 47:48


They Palawan exclusive art.

VENUS VARSHA . 47:48


111.
LUCY J GUDINO . 47:56
You exclude you are.
What do you get?

PARAS JAIN . 48:00


But yeah.

LUCY J GUDINO . 48:00


So the truth table of yeah, yeah, exclusive or gate.

BAGAL SWATEJA RAMESH . 48:00


111.

VENUS VARSHA . 48:03


111.

LUCY J GUDINO . 48:04


I work all of you know, then inputs are same, output is.

BAGAL SWATEJA RAMESH . 48:06


Umm.
When 00.

RAHUL KUMAR BURNWAL . 48:10


Ben Ben Ben.
I'll put this OK.

LUCY J GUDINO . 48:17


The output is 0 then inputs are same, output is 0 then input is different then the
output is 1.

RAHUL KUMAR BURNWAL . 48:18


Yeah.

LUCY J GUDINO . 48:25


So inputs are different, right?

DILIP K.G. . 48:25


1.

LUCY J GUDINO . 48:27


I'm getting one OK 111 so the.

KARMAKAR ANKITA ASHOK . 48:31


Pam.
So you did the R right or between the two.

BAGAL SWATEJA RAMESH . 48:34


Exhale.

RAHUL KUMAR BURNWAL . 48:35


Yeah, no.

LUCY J GUDINO . 48:36


Yeah, saw this is exclusive or not our exclusive R exclusive R is if the inputs are
different, output is 1.

KARMAKAR ANKITA ASHOK . 48:37


Salvia.
Yes, yes.

RAHUL KUMAR BURNWAL . 48:39


OK.

LUCY J GUDINO . 48:47


So you can see X0Y is one.
They are different so output is 1 here.
In this case X is 1 by zero.
They are different so output is 1 when they are same the output is 0.
This is the route table of explosive Archie.
OK, now you can say zero and one inputs are different so output is 1.
So the rest of the combination also it it gives us what?
Alright, so this is.

VENKATESH KODARI . left the meeting

LUCY J GUDINO . 49:19


How did we write?
Uh yaks.
Why is that right now XYZ I have one one now from P not.
So now what we have to do is we have to, you know, we have to check each and
every bit.
So let me start from here.
So Z is equal to 1.
OK, Z is equal.
I'm starting from MSP.
You can start either from MSP RLSP.
So let me start from MSP.
So MSP corresponds to Z axis, so I'm going to move from P not to PP.
OK, like this, then the next, you know, thing next stretch, I'm going to look at one.
Well, OK, so this one corresponds to why.
So what?
Why is here?
OK, the message gets transferred to pieces, then it is last bit is 1, so that is towards X.
So the communication path is from P not to P4 and P4 to P6 and then P62P7.
OK, so the routing happens like this.
Now if you want to.

ANJALI VISHVAJIT JUIKAR . left the meeting

RAHUL KUMAR BURNWAL . 50:45


Ma'am, ma'am didn't understand, ma'am.

LUCY J GUDINO . 50:49


Now see, once you, once you find exclusive or are of the source and destination
addresses, then you consider each bit of the output what you got it here.
OK, so first a bit corresponds to Z.
OK, now my starting point is P not right.
I want to establish a communication from P not to peasant.
Probably P not wants to send some message to P SUMIT.
Now how is it going to send information?
So it has to create a route for the communication.
That is what I'm trying to teach you how to establish communication now first, a bit
corresponds to Z direction.
Correct.
Correct, yes or no.

RAHUL KUMAR BURNWAL . 51:41


Yes, ma'am.

LUCY J GUDINO . 51:42


So the so you are you might be knowing this right, this is the XY and Z.
So this is that direction.
So since it is one, I'm going to make a connection from P, not to PP4.
My first part of the route is P, not to P4.
That is this.
Next, I'm going to check the second bit in my final answer.
When I perform exclusive app that is also equal to 1 and this one corresponds to
one.
So I'm going to move from P4 to P6.
OK, that message.
Now the second route is P4 to P6 and then after that I'm going to consider this one
that is towards X direction.
Maybe I'm having pizza it so the final stretch is P6 to P7.
You might ask when zero is there here in this address, then we don't move at all.
Now supposing if I want now let me delete this entire, I don't know, I'll do one thing.
I'll copy the slide.

ANIRUDH UPPAL . 52:56


But I'm busy, baby.
Take exclusive all all of course and destination and the result of it is for the applied
on that.

LUCY J GUDINO . 53:04


Yes, yes. Correct.
Correct, correct.
Let me let me take up another example.
This is P0P 1B2.
Now I want to have communication from P not to P file.
Now tell me, what is the route?
First, you all of you do first and then I will tell you whether it is correct or not.

ANIRUDH UPPAL . 53:44


I think the room will be one of the one.

LUCY J GUDINO . 53:47


Hmm.

ANIRUDH UPPAL . 53:49


If you would would be difficult of being forced, this connection point would be.

LUCY J GUDINO . 53:53


Not.
First you have to find out exclusive are of the addresses, so P not is 000, no B5 is 101
exclusive or of that is 101.

RAHUL KUMAR BURNWAL . 54:00


Exclusive Bodies 0 and 0.

LUCY J GUDINO . 54:12


No.
You examine 101 and then determine the path you are starting P0P 4P5.

V SAGAR . 54:17
He's, you know, before we 5.
Before they think.

LUCY J GUDINO . 54:23


Let me check so first this is 1.
This is corresponds to Z, right?
So I'm going to move towards this.
OK.
Then then what happens?
Then zero.
I'm not going to move anywhere, OK, it is zero.
I'm going to return here only then I'm going to evaluate this one.
So this one corresponds to X.
So there is a path from here to here.
So if you evaluate from here to here, the path will change.
So you will come here 1st and then go here.
So that is another row.
So it depends on the direction of evaluation whether you are evaluating from left to
right or right to left.
Correct.
You are able to differentiate between left to right and right to left evaluation.
Guys, I'm asking you a question.
You are able to understand the difference, right?

RAHUL KUMAR BURNWAL . 55:26


Different.

ANIRUDH UPPAL . 55:27


Yes.

LUCY J GUDINO . 55:28


Look, OK, any doubts here?

RAHUL KUMAR BURNWAL . 55:33


No, my thinking.

LUCY J GUDINO . 55:34


OK.

NANDAGIRI SIVAPRIYA . 55:34


Ma'am exams.

LUCY J GUDINO . 55:37


No. Yes.

NANDAGIRI SIVAPRIYA . 55:37


I'm I can you go back to the previous?

DAYALAN P . 55:38
Ma'am, it is always XYZ.
Sorry, go ahead.

LUCY J GUDINO . 55:41


Always exclusive or.
Always exclusive or.

NANDAGIRI SIVAPRIYA . 55:46


Umm.
Ma'am, can you please go back to the previous slide?

LUCY J GUDINO . 55:51


Yes.

NANDAGIRI SIVAPRIYA . 55:54


So Exar operation means it is negation of our right?

LUCY J GUDINO . 55:59


No negation of not a lot is not.

NANDAGIRI SIVAPRIYA . 56:04


Umm.

LUCY J GUDINO . 56:07


Right.

NANDAGIRI SIVAPRIYA . 56:09


Yeah.
Thank you, man.

LUCY J GUDINO . 56:13


OK, so next topic is message passing primitive, so I think probably you might have
studied studied this send primitive or receive primitive buffered, unbuffered blocking
nonblocking, synchronous asynchronous hmm.
Do you know this or not?
Do you want me to explain?
OK, let me let me let me explain.

BAGAL SWATEJA RAMESH . 56:41


Wants to explain.

DAYALAN P . 56:41
Yes.

DILIP K.G. . 56:43


That's gonna please explain.

LUCY J GUDINO . 56:43


Yeah.
Yeah.
So in distributed system we don't use shared memory concept.
So I had asked you to find out.
Ohh, what are the you know issues in distributed?
I had put up a message yesterday.
I hope you all have listed various issues in distributed systems and probably in this
course most of the issues you might have noticed we are going to find a solution for
that and one of the issues is they know it would have been very easy if we had a
shared memory concept.
Shared memory is not feasible because there are location of the nodes, so nodes are
distributed all over right?
It is spread across many places and the way to keep our shared memory so that is
the issue.
So that actually gives the non uniform memory access type.
Which is not a desirable thing, so usually in usually no.
We use in distributed system message passing technique.
So there are two operations send and receive, and there are several options.
OK.
The two operations for sending and receiving messages are send primitive and
receive.
Umm.
So let us look at, you know, each of the each of the, you know, options.
We have first one is blocking and non first one we will see you know first we will see
what kind of buffers each process will have.
So there are two kinds of buffers, you know each each process can process or can
have the first one.
We call it as user buffer, OK and the second one we call it as kernel buffer.
So kernel buffer garnel buffer is managed by the operating system, so this will be in
the user space.
And kernel buffer will be in the kernel space.
OK, address space.
I think primitive.
If you look at send primitive so it will have at least two parameters.
Can you guess which are the parameters?
I want to say message and there just relation very good message Ender destination.

V SAGAR . 59:23
Message in the destination message and the destination.

LUCY J GUDINO . 59:29


So when I'm specifying the message so I have to say in which buffer no we I have to,
you know specify where my message in my user space because the user will keep his
information to be conveyed in the user's buffer.
Right.
So that address needs to be specified, so send message will have two parameters.
The first parameter is the destination address and the second parameter is buffer in
the user space.
So user buffer contains the data to be sent.
Similarly, receive primitive has at least two parameters.
The first parameter is the address of the source from where the data is to be
received.
Most of the time this could be, you know, wild card.
So so most of the time we don't expect, you know there is when message comes
only we will come to know from where from which source it has come right that is a
general network in principle.

ANJALI VISHVAJIT JUIKAR . joined the meeting

LUCY J GUDINO . 1:00:39


So we will, you know the receiver will not know beforehand unless we have some
kind of, you know, synchronization or handshaking technique wherein we say hello
to each other and then try to communicate.
So that time, you know both sender and receiver, they are aware of who they who is
their destination and who is there.
Sender umm.
So most of the time having sender detail is uh, it's not needed.
The second parameter is the user receiver buffer into which the data is to be
delivered.
There are many options for sending and receiving parameters.
Sending and receiving messages buffered and buffered blocking, non blocking,
synchronous asynchronous in buffered option user data is copied from.
Loser data he is copied from user buffer to kernel buffer user buffer too gurnal
before.
And from there it will be put on the network.
OK, so you in buffer type user data will be transferred from user buffer to kernel
buffer and from there it will be put on the network.

PRANCHAL MISHRA . left the meeting

LUCY J GUDINO . 1:02:13


OK, but in case of unbuffered you know option the user data will be copied from
user buffer directly onto the network.
OK, so these are the two options which are available now.
Tell me what is the advantage of this method and what is the advantage of this
method?
I think you have studied networking as well as introduction to parallel and
distributed program.
No.
Tell me what is the advantage of both of this?

V SAGAR . 1:03:00
Before, I think data will be consistent and unbuffered, performance will be better.
LUCY J GUDINO . 1:03:06
Hmm.

KARMAKAR ANKITA ASHOK . 1:03:10


Meeting performance wise, it will matter.

LUCY J GUDINO . 1:03:11


Yeah, Council state.
No, no, no, no, no.
Wait, wait, wait.
Let me let me ask them.

MADHAVAN R . 1:03:14
I I think it's the other way.

LUCY J GUDINO . 1:03:16


No, no.
Let me ask some more questions to the first person who answered.
Uh, the first thing you said it is efficient.
What?
What is the word you used?

V SAGAR . 1:03:29
I said data will be consistent.

LUCY J GUDINO . 1:03:31


Consistent.

V SAGAR . 1:03:31
No data, yeah.

LUCY J GUDINO . 1:03:33


So how do you say that?
How do you say that?

V SAGAR . 1:03:38
App.
So in Buford, so it will not be processed until until it receives complete packet or the
message that it is being passed.

LUCY J GUDINO . 1:03:49


Yeah.

V SAGAR . 1:03:49
Uh, where is it unbuffered?
Whole packet is sent at a time I you if if there is a I mean.

LUCY J GUDINO . 1:03:53


Hey.
You see in first in first case what happens is actually we are transferring the
responsibility of transferring the message from user to kernel.

V SAGAR . 1:04:02
If there's any interruption.

LUCY J GUDINO . 1:04:15


So I'll treating system is going to look at the, you know, look at how you know
message is going to be transferred with collects everything and then it pumps it on
the network, probably it might even look at the other aspects of the network.

UTSAV BHARDWAJ . left the meeting

LUCY J GUDINO . 1:04:30


But in the unbuffered thing it will be, you know soon the buffer gets the user buffer,
gets the data, it will be dumped on the network.
So wherever speed is very important and I don't know bother about reliability and
the other things, probably I'll go for a second option because for me speed is very
important.
Streaming of our best example is streaming streaming, where you know most of the
time I'm going to use UDP streaming application.
If you, if you look at UDP and TCP, which one we prefer, we prefer reliable protocol,
are unreliable protocol.
We use reliable, unreliable protocol for streaming application because handshaking
will take a lot of time.
Correct, Unchecking will be TCP users handshaking right hand checking will take a lot
of time, so we don't want to spend that much time in handshaking.
So usually we use UDP, which is unreliable.

PRANJAL SHARMA . left the meeting

LUCY J GUDINO . 1:05:30


Proto similarly here also we are not going to bother.
Our intention is as soon as the data is ready, just dump it on the network.
Whether it reaches or not, we are not bothered because either there you have
something we miss is soft.
No, I mean it will not cause that much impact.
So we have to decide on the application which application we have to use.
What?
OK, so the next one is blocking and OK, this is one more important thing.
Uh.
That receive primitive.
OK, they're receive primitive.
Uh uses buffered option only, so I can actually have two options for send.
OK, it can be buffered or unbuffered, but receive needs to be always buffered.
Can anybody tell me why it has to be?
Why it is still primitive users only buffered option?
Then we can have two options, buffered or unbuffered, but received always should
have buffered option.

DAYALAN P . 1:06:54
If the output is not ordered, it will not make sense in the receiving end.

BHANJA ANTARYAMI . 1:07:01


It has to see the capacity.

LUCY J GUDINO . 1:07:01


Any any.

BHANJA ANTARYAMI . 1:07:03


How much it can, you know, receive then only based on that it will take you know.

LUCY J GUDINO . 1:07:11


Now receive primitive users buffered option only because when they receive
primitive is invoked.
That data may already have arrived and needs a storage piece in the kernel.

VINAY SANJAY SAWARDEKAR . left the meeting

LUCY J GUDINO . 1:07:27


OK, you are.
You know, it has already come because we will not anticipate at the receiving end
whether the data is already transferred out because there is no, you know, there
should be some way to inform the receiver.

FAJAS F . left the meeting

LUCY J GUDINO . 1:07:43


So that's why always, you know always, you know, receive our primitive always uses
the buffer.
Prefer to use buffered option because if the receiver is not ready, at least it will come
to the uh, you know, come to the power kernel area and it will be there and from
there it get transferred to user area so that is how it is.

PRANCHAL MISHRA . joined the meeting

LUCY J GUDINO . 1:08:08


So then next one is blocking versus nonblocking.
A primitive is blocking if control returns to the invoking process after the process for
the primitive completes.
OK, you are intending to do something until or unless that thing is not completed, it
will not return to the process.
It will wait.
OK, so blocking basically there are a lot of wait time.
The primitive is nonblocking.
If control returns to the invoking process immediately after the location, even though
the operation is not complete.
Thought nonblocking sent control returns to the process even before the data is
copied out to the you know out of the user you know buffer for a non blocking
receipt the control returns to the process even before the data may have arrived
from the sender, so that is a difference between blocking and non blocking then
synchronous and asynchronous.

KARMAKAR ANKITA ASHOK . 1:09:18


Man.

LUCY J GUDINO . 1:09:19


It is very simple.

VINAY SANJAY SAWARDEKAR . joined the meeting

LUCY J GUDINO . 1:09:20


Let me let me complete this.
Is it synchronous and asynchronous?
Very simple.
So send and receive primitives are synchronous.
If both the send and receive promotive has handshake with each other, so yes you
chronus primitive.
There is no handshake.
Somebody had person please.

KARMAKAR ANKITA ASHOK . 1:09:42


A non blocking is equal to asynchronous right?
With the same right?

LUCY J GUDINO . 1:09:51


We can have you synchronous blocking years in chronus non blocking synchronous
blocking, synchronous non blocking.
Cool I.
Initiate sent, pre meeting.
OK, process OK.
Now let me write a the ballad of this.
So now I say send.
Yeah, this is in my code.
OK, send them.
Now what happens is still entire thing happens from you know if I use a buffered
option, users buffer to kernel buffer, kernel buffer to layer.
Until then, this is the the process will wait that is blocking OK only when the entire
thing completed, it will come to the next instruction and exit.
In non blocking what happens is it just executes this before it.
I mean it will not wait for the other things to happen.
It just comes to the next itself.
So somebody has to manage when this is executed.
If it is non blocking, somebody has to.
Somebody else have to take care of copy from you know user buffer to kernel space
from there to network.
Or if you we are using unbuffered user buffer to network, so that should be done by
somebody.
OK.
That is it.
So synchronous asynchronous it is basically handshaking.
So we can have combination of all of this.
So I think today evening I will put up a small, you know, write up with the different
combinations, what it means.
So you can have a look at it.

VENUS VARSHA . left the meeting

LUCY J GUDINO . 1:11:44


Alright, so I think I'll take a 6 minutes break.
Ohh so we are lagging behind actually, but I'm happy that lot of interaction is
happening.

VENUS VARSHA . joined the meeting

LUCY J GUDINO . 1:11:57


It's OK.
So we will meet at 5:00 o'clock, OK.

ANIRUDH UPPAL . 1:12:07


Some.

S.S. PAVAN KUMAR MARLA . left the meeting

SIDDESH G M left the meeting

VYSHAK S V . left the meeting

VYSHAK S V . joined the meeting


KOTA NAGA VENKATA KARTHEEK . left the meeting

NANDAGIRI SIVAPRIYA . left the meeting

BHANJA ANTARYAMI . left the meeting

LUCY J GUDINO . 1:17:48


OK, welcome back.
So this is actually second lecture.
Uh.
Updated.
Now I don't know how much I'll be able to cover today.
Ohh so before we get into the logical clocks I'm supposed to cover logical clocks
today.
First we shall see model of a distributed computer.
So then, if time permits, I'll talk about lamppost theological clock and vector clock.

BHANJA ANTARYAMI . joined the meeting

LUCY J GUDINO . 1:18:19


Uh, so before this, you know, I hope all of you know network time protocol.
Network time protocol, that is, NTP is used to synchronize the clocks of computer
systems.
In case of computer network based interconnection, all the devices in the network
are synchronized with reference to a reliable time source and just reliable time source
could be an atomic clock or time server connected to a highly accurate what time
source.
It is very, very popular in Intranet work, land internetwork then cluster for time
synchronization.
This popular NTP, why can't we use in distributor systems?

VENUS VARSHA . left the meeting

LUCY J GUDINO . 1:19:15


Why do we need logical clocks?
Probably when I ask you to find out what are the problems in this stupid system,
probably you might have seen we cannot use normal system clock to synchronize
the uh, you know, distributed.
Uh notes, so that is why we have to use, you know, logical plus.
So you end of the session.
Let us try to find answer to this question why we can't use NTP?
Why should we need a logical plugs ohm.
So let us first see what is a distributed program.
Distributed program is a software.
As you all know, is a software application that is designed to run on multiple
processors.
Are computers or servers simultaneously?
Henceforth, I will call these processors computers and servers as nodes.
OK.
You know distributed program, the processing tasks are they and data storage task
are divided among multiple nodes and all these notes work together to achieve a
common goal.
So the work guests distributed across different nodes, distributed program
composed of a set of yen, asynchronous processes, P1P2X, etcetera in a distributed
system, asynchronous processes refer to processes that operate independently of
each other and are not synchronized in terms of you know in terms of timing are
execution, so they they are actually point of independent processes, but they all work
for same goal.

VENUS VARSHA . joined the meeting

S.S. PAVAN KUMAR MARLA . joined the meeting

LUCY J GUDINO . 1:21:19


These are asynchronous processes run on different nodes.
These processes do not share a global.
You know, they do not share a global clock.
The process, you know, process.
Umm, no execution and message transfer.
There also is in chronus.
Ohh so it's very very very important to observe this process execution and message
transfer are also is synchronous.
I have already mentioned what is asynchronous?

BHANJA ANTARYAMI . left the meeting

LUCY J GUDINO . 1:21:56


Asynchronous means a process may execute an event spontaneously and
independently, and as far as message passing is concerned, a process sending a
message does not wait for the delivery of the message to be complete.
Distributed program deployed across several nodes.
Hence it is very important to know the overall state of the distributed program.
That is what we call it as a global state.
So last class I just you know mentioned about global state now what is the state of
the process?
OK, so when when I try to define define a global state, uh global state is nothing but
the states of the all the processes and the communication channel.
Because sometimes what happens?
Messages are on the channel, so you need to capture what is there on the channel as
well as process state.
Now, what is the state of a process or what is?
What is?
What do we mean by process state?
It is basically a context of a process.
It is characterized by the state of its local memory contents of various registers.
What is the content of program counter stack pointer?
So all these things are known as state of a process.
The state of a channel is characterized by the set of messages in transit in the
channel.
We are going to use fuel notations throughout this class.
BI is nothing but it process and CIJ is nothing but channel from a process PI2 process
PJ.

ARSHIYA SIDDIQUE . left the meeting

LUCY J GUDINO . 1:23:57


Sometimes we may indicate 7C2 etcetera.
Most of the time we denote, so the channel connecting 2 processes.
So if I write CIJ that means there is a channel between Pi process and PJ process.
Let me now present a model of distributed execution.
Let me ask you a question.
What happens when a process gets executed?
It's a very simple trivial question.
What happens when a process gets executed, so otherwise?
Let me begin with this question.
What do you mean by a process?
What do you mean by your process?

RAHUL KUMAR BURNWAL . 1:24:43


A set of instruction.

LUCY J GUDINO . 1:24:43


How do you state of the instruction?

RAHUL KUMAR BURNWAL . 1:24:47


A set of instruction.

LUCY J GUDINO . 1:24:49


OK.
Any any other ask answer.

DILIP K.G. . 1:24:53


That of accents.

LUCY J GUDINO . 1:24:55


Hmm.
Process is nothing but programming.
Execution process is nothing but program execution.
So when you are asked to write a program so you store it in the hard disk, right your
store it in the hard disk.
OK, but your processor will not be able to access the program which is there in the
hard disk.
So it is, it is in the external memory.
OK, so in order to execute a program you have to load that program into main
memory only main memory processor can access.
So what processor will do once it is asked to run the program?
It will look at the program in the main memory starts fetching the instruction, and
then execute those instructions.
So then the program is in the hard disk.
It is passive.
It becomes active and it is.
It gets loaded into main memory, so then we call that particular program a process.
OK, now when you execute a program, certain actions are events are executed and
these actions are automatic and nature the actions of a process are modeled as three
types of events, internal events, message, send events and message receive events.

AMOD KUMAR MISHRA . joined the meeting

LUCY J GUDINO . 1:26:29


But let me next I we note DX event at process Pi.
So I denotes the ID process yesterday.
Notes the event number in that particular process.
Photo message him let send off yen and receive off yen.
Denote its send and receive it live events respectively.
Now consider a Netflix application or railway reservation time system where lot of
messages gets exchanged between various nodes in the system.
These messages could be pertaining to data, or it could be pertaining to control
messages, right?
No.
What is the impact of these events on status of respective processes and channels as
name indicates an internal event changes this state of the process at which it occurs.
There may be changes to local memory, there may be changes with reference to
internal registers of the processor where this process is getting executed.
There may be something dumped on to the stack, and there are several other things
right ascend event changes the status state of the process that sends the message
and the state of the channel on which the message is sent.
Please read the statement properly.
A send event changes the state of the process that sends the message.

NANDAGIRI SIVAPRIYA . joined the meeting

LUCY J GUDINO . 1:28:14


So the till the send event, some action might have happen happening at the process
moment you say send message so certain event has happened so that is recorded in
that particular process.
Once you send the message, the message is on the channel so that Channel state
also changes.
Now channel is carrying some message that is the state of the channel that receive
event changes the state of the process that receives the message and the state of the
channel on which the message is received.
No, let us let us focus on the clock.
As we all know that every computer system has a physical clock and all the activities
within that computer.
Ohh is covered.
Our synchronized by with reference to that particular system clock and we cannot
use this physical clock in distributed system.
The main reason is that the system clock in each of the computer system is not
synchronized with each other, and these clocks can drift out of sink over time
because they're not very perfect in nature.
So this can cause problems when trying to coordinate events or transactions across
multiple computers.
Physical clocks are not scalable.
That is second reason why we cannot use physical clocks in distributed system.
Usually the number of nodes in the distributed system is quite high, and if this
number increases the difficulty of synchronizing the clocks are also, you know it will
also increase right?
Imagine the scale of nodes in Netflix application are railway reservation system lacks
of nodes, right?
Even if you try to synchronize physical clocks using, say, network time protocol, that
is NTP, then the system may end up in exchanging lot of control messages carrying
timing information which is not a a good scenario to have.
You are.
Your dad data transfer should be more compared to you know control information
then only you can say your network is working fine fine but you are trying to
synchronize every now and then your clock.
It carries a lot of, you know, control messages.
Lastly, physical class are not reliable, so physical clocks can be affected by a variety of
factors such as power outages, network disruptions and hardware failures.
This can cause the clocks to lose their accuracy and even stop working altogether.
This can lead to problems in distributed system where the clocks are used to
coordinate events and most of the transaction financials transaction dependent on
that time actual time right?
So due to all of these, uh, physical time synchronization with high accuracy is nearly
impossible.
So what is the alternate solution?
So let me present you with the case and then you will try instead of physical clock.
Something else we can use or not.
So let us assume that there is a distributed application involving 4 processes
P1P2P3P4.
OK, the email of this application is to generate output which is function of.
Why isn't it OK?
You're off excited, so P4 should give me FZY.
OK, so this is what is the.
Yeah, here we have to synchronize the generation of XY and Z.
So yes, there is a physical clock.
It is very easy for us, so you can we can say P2 you generate except this point in time
we can tell P3 you generate why at this point and P1 I can tell you generate Z at this
point and P4 we can tell.
So at this point you try to complete Fz Y, so that is how we can do.
We, if at all we have physical clock, as you can see P3 should not generate.
Why before P2 generate 6, do you agree with this?
So let me erase all of this.

MURTAZ SIKANDER TAHSEEN MASTIM . left the meeting

LUCY J GUDINO . 1:33:18


Now P3 should not generate.
Why before P2 generates X?
So we expect P2 to generate X first, then only P3 can generate Y.
OK, however generation of Z&Y can happen in parallel.
There is no restriction because generation of Z&Y, they are independent.
There are no dependency as such, so even sequencing is very, very important.
So time synchronizing is different.
If I can do some way even sequencing then I can do without physical class, so I can
have I I should tell P2 you generate X first then I can say P3 and P4 once you know
you can do things in parallel only that P3 has to see P2 generated X and P4 cannot
generate fz Y unless P1 and P3 generates.
Yeah, that NY respectively.
So even sequencing is very, very important.
So did you observe one thing here?
I have not mentioned anything about real physical time, but I said which event are
event should happen and when it has to happen so that is where you know we use
logical clock we we in logical clock what we try to do is we somehow try to sequence
the event that are supposed to happen.
OK, so that the output of logical clock blazed system and physical system based
system.
They should be seen.
OK, so that is what is the eat?
So we need to ensure 3 things.
First one is incoming messages are delivered before their expected by a process.
For example, P2 delivers X OK X2P3 before it produces the output Y equal to F of X
you found message meant to arrive at a process after an event.

KOTA NAGA VENKATA KARTHEEK . joined the meeting


LUCY J GUDINO . 1:35:46
It should not be delivered before the event.
For example, let us assume that one more process P5 OK which should not send
message queue before FX OK, something like this.
Yeah, office.
So unrelated events can proceed concurrently.
For example, generation of ZED and why can happen concurrently?
So you any doubts you have any doubts till now, I hope you are understood.
So why do we require logic lock?
What is logic clock?
So most of the time, whenever I, yeah, we say logic clock still be think about time.

NANDAGIRI SIVAPRIYA . joined the meeting

LUCY J GUDINO . 1:36:39


It is not about time.
It is about ordering of events.
Any doubts you have, I'm not hearing anybody.
Hello.

BAGAL SWATEJA RAMESH . 1:36:53


No doubt, no.

RAHUL KUMAR BURNWAL . 1:36:54


Nord, ma'am.

LUCY J GUDINO . 1:36:54


So OK, so can I proceed now?

ANIRUDH UPPAL . 1:36:55


Come on.

LUCY J GUDINO . 1:36:57


Whatever I'm going to discuss is very important.
Pay attention.
OK, so as you can see the distributed execution you know illustrated using time
space diagram or space time diagram.
Have you come across this diagram in the last semester?
Have you studied this?

BAGAL SWATEJA RAMESH . 1:37:20


No.

DAYALAN P . 1:37:20
No, ma'am.
V SAGAR . 1:37:20
No, man.

LUCY J GUDINO . 1:37:21


No.
Then I have to go in detail.
OK, now let me first answer to this question.
What is time?
Space diagram.
Uh, it's a visual representation that shows the execution of processes over time.
OK, over time. Time.
OK, just for the sake of completeness, I will mention this success as at time.
OK.
But these events are not actually dependent on time there because they are going to
be logically ordered.
OK, that is why so this space time diagram.
So very useful tool to illustrate the ordering of events and the relative progress of
processes.
So on X axis we represent as I told the time and then why axis we have no, you know
processes.
So there are three processes P1P2P3, and each Hari zontal you know lines, you know
they they represent the progress of a process.
Now you can see several events that are marked so dot didn't notes, so you can see
several dots here.
These dot indicates an event, the slant arrow.
What you can see here, they indicate a message transfer, observed the naming
convention used in event.
OK, suffix indicates process number and superscript represents the event number.
So if I say E-11, so this event is happening in process P1 and the event number is 1.
If I say E-14, so this event pertaining to P1 and then the event number is 4, so that is
how umm for process PP one.
Yeah, one one and E13 are internal events.
So I said earlier there can be three types of events sending event receive event and
internal event.
So when you look at E-11 and E13, they are just internal event, OK?
And even too, and even five, so these two are send events, and even four is the
receive event because Arrow is coming towards P1.
So it is a receive event.
Whereas even two and even five they are sent even to understand the progression of
events in distributed application.
We use happens before relation.
Happens before relation.
The happen before relationship is basically who stood determine the order in which
events must occur, and even if they are not in secured in that order in reality.
So that is what we are trying to do.
So the happens before relationship is defined as follows.
D Yep, 2 events, 2 events that in occur in the same process happen before each
other.
So let me repeat the statement two events that occur in the same process happen
before each other.
Now you just look at E-11 and E12.
OK.
So you have one one happened before even even two happened before he won
three.
Even three happened before E-14 and so on and so forth.
This is mainly because even since the same process are executed in a sequential
order, so they must happen in that order.
OK, so within the process, the events can be easily ordered, but between process,
how do we order that is the biggest problem right within the particular process,
events can be nicely added, no.
These sending offer message happens before receiving of the same message, so
hope you are able to catch my point.
The sending of a message happens before the receiving of the same message.
For example, even 2 correct you want to is the sending event at process P1, which
should happen before the receive event.

VENKATESH KODARI . joined the meeting

LUCY J GUDINO . 1:42:24


E22 at P2 I cannot say.
You know other way round, he two happens before you went to the.
It makes no sense right?
Since even two is a sending process, it should happen first and only after that E22
should happen because it's a received event.
Very important point to be noted that the happens before relation is transitive.
Let me write that it is planset do OK well, why is it called transitive?
Let let me explain with an example.
Look at this figure.
So even 2E12 happens before E22E22 happens before E23E23 happens before E3,
correct?
So even two I happens before E32, it should happen before E32.
OK, that is transitive relation, because even to happen before E2 to E2 to happen
before E23E3E23 happened before E32, I can say even two must have happened
before E32, that is transitive relation.
No, you you can you look at the figure and identify some concurrent events which
are the events that can happen concurrently.
Across processes.

V SAGAR . 1:44:10
E-11 and 312.
LUCY J GUDINO . 1:44:13
Yeah, 11E12 only these two.
What about E31?

V SAGAR . 1:44:18
And it three, one and three, two as well.

LOKESH KATIYAR . 1:44:23


You're probably most of the cases where you have internal events with the external
one.

PROSENJIT BARI . 1:44:23


EE 21.

LUCY J GUDINO . 1:44:23


No.

V SAGAR . 1:44:25
Fair.

LUCY J GUDINO . 1:44:28


No, no, no, no, not that.
See I along the horizontal line.
I cannot have concurrent events.
OK, they are all events are you know have follow happen before relationship.
See, even one you feel look at P1E11 happens before E12E12 happens before E13E13
before happens before E-14, and so on and so forth.
If you look at me too, same thing, E21 happens before E 22E22 happens before E
2323 happens before E2 four and so on and so forth that I'm asking across
processes.
Can you locate some parallel executions?

PROSENJIT BARI . 1:45:18


E11E21.

DAYALAN P . 1:45:19
E11A1213.

LUCY J GUDINO . 1:45:23


Yeah, 1/2 means this.
See, when you are reading the fix, you have to read 1st and then the subscript
superscript.

AMOD KUMAR MISHRA . 1:45:34


Then E11E21HE2182E3 one, yeah.
LUCY J GUDINO . 1:45:34
OK.
Year one, year one one year 21E31.
So these three can be concurrent.
OK, so concurrent in that sense, they're not going to execute in, you know, at the
same time then because we are not you know, following the convention of time, but
they can happen, see even one can happen anytime before even 2E21 can happen.
Anytime before he.
2E31 can happen anytime before E3.
OK, that is.
What SO E11E21E31 they can happen concurrently, there is no dependency as, so I
cannot say.
Yeah, one one and E22 are can execute concurrently because E2 tools execution
dependent on E12.
How did I cannot say these two are then another set?
What I can look here is even 3E24E33 they also concurrent event.
Only thing is even three will happen after E12 before E14E24 happens after E23,
before E25 and E33 happens after E32 and E3 four.
OK, So what?

ANIRUDH UPPAL . 1:47:02


Something didn't say that, though, and we can say that I'm general events can
happen in the component view proxy property.

LUCY J GUDINO . 1:47:08


Got your voice is breaking.
I I'm not able to.
Can you repeat one second?

ANIRUDH UPPAL . 1:47:15


And I'm thinking that so we can say that internal events can happen concurrently
across the process, right?

LUCY J GUDINO . 1:47:20


No internal events never happened concurrently.
Internal events.
What do you mean by internal events?

ANIRUDH UPPAL . 1:47:29


So I'm I'm calling E12E11 and 1/3 as general.

LUCY J GUDINO . 1:47:33


You 2/2 and E23 you know we cannot have, you know concurrently, even though you
2/3 is concurrent, we cannot.
PARAS JAIN . left the meeting

ANIRUDH UPPAL . 1:47:48


OK.

LUCY J GUDINO . 1:47:52


OK.
So see, always you know, now we have to look at which are the events needs
ordering.

BAGAL SWATEJA RAMESH . 1:47:54


And.

LUCY J GUDINO . 1:48:03


OK, that is what is important.
Do we do I need any kind of ordering to execute even 1E21E they cannot happen
anytime right?
But only thing is they should happen after the next before next event.
That is the though that yes.

BAGAL SWATEJA RAMESH . 1:48:19


Man.
Ohh yeah, I'm not getting half E23 and E32 are the concurrent events E2E23 and E32
as you just mentioned.

LUCY J GUDINO . 1:48:26


What do you think E?
E23.
No, they're not.
Concurrent, they're not concurrent.

BAGAL SWATEJA RAMESH . 1:48:35


OK, OK.
I might then miss.

LUCY J GUDINO . 1:48:37


That is what that is what I'm saying.
They're not concurrent, so these three things are concurrent, and these three things
are concurrent.

BAGAL SWATEJA RAMESH . 1:48:39


OK, OK, go to come.
Yes.

LUCY J GUDINO . 1:48:47


OK, we can execute concurrently.
They're not, you know.
Uh.
Execution of even three doesn't affect E24.
Execution of E13 doesn't affect the E3.
They're independent, but here even 2E23E22 they're dependent.

BAGAL SWATEJA RAMESH . 1:49:01


Umm yes.

LUCY J GUDINO . 1:49:07


Only I can receive E22 event.
I can complete E22 event only if even two has happened before.
There is a dependency.
I cannot run them in concurrent manner because one is dependent on the other.

BAGAL SWATEJA RAMESH . 1:49:24


OK, for yes.

LUCY J GUDINO . 1:49:24


OK.
OK, the happens before relationship is used in variety of distributed system
applications such as banking transactions, data replication, event ordering et cetera.
Few important points to be noted, so this is very, very important.
Please make a note the result of logically ordered computation is same as that of
physically time synchronized stop dictation.
Ultimately, if I use logical clock, our physical clock, the result should be same.
There should not be any difference.
That is the meaning of a state logically ordered computation independent of
absolute time.
So we don't even care about time, but there are of course some application banking
transaction.
What time are you withdrew the money?
That may be important.
Correct.
But when I'm ordering the events, I don't consider that physical time.
So logically, concurrent events may happen in different physical time, depends on
message delays.
Now look at the diagram.
You one, three, that is this E24 and E33.
So these are the three concurrent events and these event should happen before next
event in the respective process.
For example, even three should happen before even 4E24 should happen before E25
and E33 should happen before E3 four.
But The thing is now you can see here you 24 the execution depends on the events
you 2/2 and E23.
OK, so when E22 get E24 gets executed?
That depends on E22 and E23.
Why am I saying E22?
Because the message delivery it is network dependent, I cannot predict when this
message is going to get transferred.
That this line comes here.
Probably this E23 will shift this site right?
And then probably this also may have to shift.
So that is it depends on the message delays.
So when it is going, when each of the events is going to execute, that depends on
the message delay.
If that particular event you know before that some message delivery thing is event is
there that then definitely the execution of that event depends on message delays.
Also note that the execution time of year 2, four and E33 depends on the message
delays of E22 and this.
So this is very, very important.
So I'm repeatedly saying that so this will not be affected by two, three, but E totos.
You know contribution is a lot here because it's a message receiving event message
delay sending event.
It's under the control of P2, but missing message you receiving is not under the
control of P2.
It is.
It is controlled by the channel.
OK.
So that's very, very important.
E24 and E33 so there there is a message receiver.
I Even so it's execution basically governed by message delays.
OK.
Even if we assume.
They happened.
All these events happen exactly at the same time.
Overall computation result will not change, so even if they execute parallelly our one
after the other, it doesn't matter.
But somehow the other is meant.
So I hope you all are a bit uh network layer uses TCP or UDP, TCP followers FIFO
communication model whereas.

AWADHESH KUMAR . joined the meeting

LUCY J GUDINO . 1:53:53


UDP follows non FIFO communication model.
Fifo communication model ensures that messages sent by a process to another
process are received in the same order they were sent.
It's TCP kind of, you know communication.
So I hope you all have studied, I think last last semester you had a course on
networking, right?
So TCP is reliable communication, so it uses FIFO communication model.
For example, P2 sends 2 messages M1 and M2.
OK.
Over the communication channel C2 and this communication channel is free for
channel, for example TCP.
But at the receiving end, P3P3 will receive in that order only.
So M1 first and then M2.
So this kind of ordering guarantee helps maintain the integrity of message
sequences and supports sequential consistency.
People communication can be achieved through various mechanisms.
You can use message queues or you can explicitly number the messages.
So in case of, you know TCP protocol, we number messages right?
So every message have a sequence number, so and when it comes to buffer, we try
to order them right in transport layer.
It gets ordered and then it gets delivered.
So at this before communication model provides a very simple and intuitive.
Ohh.
Othering property which is useful in scenarios where order of messages is critical.
For example, it could be used in use cases like IoT, so I OT for example uh you have
deployed ioti system to monitor forest fire.
Then probably I know I the the order of the message is very, very important.
So I think at you know three o'clock Ms was sent saying that at particular area there
is no file OK and 4:00 o'clock another message is sent there is a fire.
So the 4:00 o'clock message receives first and then three o'clock messages reach us
later.
Then people might assume that there is no file, so fire was there, but now it is not
there, so that that just thing should not happen.
So so the the another another use case where we should use before communication
model is online gaming then one more is financial trading.
So all these use cases where you know ordering of, you know messages are very
important.
The non FIFO communication model does not provide any specific guarantees
regarding the order in which messages are received.
For example, P3 sends 2 messages M1 and M4 on non FIFA channel and P1 might
receive M4 first and then M3 for example real time video conferencing here non fee
for communication allows packets containing video audio data to be delivered as
soon as they are a they are generated are they are available rather than waiting for a
strict order.
So there the delivery of content is very important.
If we miss out the order of one or two packets, doesn't matter.
Another example is pure to peer application such as BitTorrent.
Here the focus is on sending the most recent are critical information rather than
waiting for older messages.
Hence, while designing distributed algorithms, it is very important to know the
underlying communication model.
In some cases, strict ordering guarantees may be necessary, while in others the
flexibility of non FIFO communication may be more appropriate so that one
important point what you should remember is in distributed middleware you know
which is on top of operating system and network protocol stack.
So it can provide additional semantics like console ordering.
Now the new term is causal ordering.
What is causal ordering so very important.
So I'll just complete this slide and then this class.
Umm.
The causal ordering means that the occurrence of one event can influence the
occurrence of the another event.
So causal ordering enforces happened before relationship among messages across
links.
Look at the left most diagram.
This diagram we're in, P1 sends 2 messages M1 and M22P.
Here the mean ordering constraint is that if the event send M1 happens before send
M2.
Be expect the receive Yemen to happen receive OK, so messages are delivered by
preserving the same order.
The best example is distributed some some some noise please.

V SAGAR . 1:59:54
Yeah, that's an interesting.

LUCY J GUDINO . 2:00:00


The best example is distributed workflow.
Like Apache, Airflow is probably some of you might have worked in work with the
Apache Airflow.
These systems will have complex workflows and dependencies.

VENKATESH KODARI . left the meeting

LUCY J GUDINO . 2:00:15


In such cases, causal ordering assistant orchestrating the execution of task and
ensuring that they are performed in the right sequence.
Next class we shall see how causal artery.
It's useful in database replica application.
I will.
I I'll try to present a case study on that.
So rightmost diagram shows the Venn diagram, so most general messaging
technique is non FIFO where there is no restriction in message order on the link, the
message can be received in any order.
More constrained version is FIFO, where messages are delivered in the same thing
sequence as sent on a link in causal ordering, messages are ordered across the links.
That is very important on the same link it's OK, but across links are across processes.
The ordering is very important here.
We use happen before you know that relationship.
OK.
So next class, we will talk about global state and other things we didn't even start
logical clock, OK?
Anyway, next class, so we will try to cover more topics.
Uh, probably.
I might require extra class because I'm lagging behind now.
OK, So what about group creation?
Is it done?
I could see around 30 students not at putting me any of the groups.
If you want to do any one of you have not done that, please do it OK and the
probably next week unless we are starting with the labs.
Did you get any notification from the uh admin that you are given access to a cluster
of three nodes?

SIVAKRISHNA TV . left the meeting

DILIP K.G. . 2:02:15


No.

LUCY J GUDINO . 2:02:16


No, not yet.

BAGAL SWATEJA RAMESH . 2:02:16


No.

ANIRUDH UPPAL . 2:02:16


Not yet.

LUCY J GUDINO . 2:02:17


Right.

VENUS VARSHA . 2:02:17


No, not yet, ma'am.

LUCY J GUDINO . 2:02:18


I'm waiting for a minute.
I'm waiting for that, so I'm planning to conduct a workshop at least two workshops
so that you know, there may be, I mean, some students who are not well versed with
these kind of programming and all basically help them out.
So usually I conduct workshops.
OK, two workshops and based on what I conduct in the workshops, I give
assignments, OK.
So I want the time slot on Sunday then are you free Sunday?
Now there is a WhatsApp group.
Put a message.
Find out free slots 2 hours and please let me know, OK.
AMOD KUMAR MISHRA . 2:03:02
So Sunday, men Sunday, we have three classes, ma'am.

LUCY J GUDINO . 2:03:02


Alright.

BAGAL SWATEJA RAMESH . 2:03:03


Yes.

LUCY J GUDINO . 2:03:06


Three classes.

VENUS VARSHA . 2:03:07


Yes, ma'am.

AMOD KUMAR MISHRA . 2:03:07


Yeah.

VENUS VARSHA . 2:03:08


If you can arrange on Saturday, that will be fine.

ANIRUDH UPPAL . left the meeting

LUCY J GUDINO . 2:03:12


No, I thought Saturday you have three classes.

VENUS VARSHA . 2:03:15


No, no.

PROSENJIT BARI . 2:03:15


No ma'am.

VENUS VARSHA . 2:03:15


Sunday you have three classes.

DILIP K.G. . 2:03:15


So we have, we.

PROSENJIT BARI . 2:03:15


Saturday.
Yeah, some people have three classes Saturday also.

LUCY J GUDINO . 2:03:20


Hmm, no.
DILIP K.G. . 2:03:20
We have Saturday 2 classes Sunday two classes.

ANIRUDH UPPAL . joined the meeting

LUCY J GUDINO . 2:03:25


OK, you tell me some feasible time, OK.

RAHUL KUMAR BURNWAL . 2:03:27


But.

AMOD KUMAR MISHRA . 2:03:30


Uh did.

LUCY J GUDINO . 2:03:30


My are my Monday to Wednesday sometime.

AMOD KUMAR MISHRA . 2:03:34


Or what if this class only is extended by say 11R?

LUCY J GUDINO . 2:03:38


No.
Like again, I think 415 day of class no four or five o'clock you have class, right?
Some some people are having class to.

PROSENJIT BARI . 2:03:47


4:50 yeah, 45550. Sorry.

LUCY J GUDINO . 2:03:52


My 50 another 4 minutes to go otherwise.

PROSENJIT BARI . 2:03:53


Yeah.

RAHUL KUMAR BURNWAL . 2:03:55


Ma'am.
Maybe.
Maybe we can extend on Saturday after 8:00.
O'clock or 7:00 o'clock.

LUCY J GUDINO . 2:04:02


OK, let me let me check that.
See same day conducting class and this becomes little difficult because yeah, till you
know September I have four classes running.
I'm totally overloaded so that is a problem.
AMOD KUMAR MISHRA . 2:04:20
So I think some some week days like Friday evening should be OK with them.

LUCY J GUDINO . 2:04:24


Friday not possible because Friday I have classes so I can.

AMOD KUMAR MISHRA . 2:04:27


OK then.

BAGAL SWATEJA RAMESH . 2:04:28


And I'm in WhatsApp itself, we will arise a pole and according to the the time slot we
will select.

LUCY J GUDINO . 2:04:32


One of you do that.
OK, one of you do that and then tell me when is it feasible?
OK.
OK, Sunday till 10:00.
O'clock I'm not available because I have to go to church after 10:00.
O'clock is fine.
OK.
All right.
Thank you so much.

RAHUL KUMAR BURNWAL . 2:04:50


Yeah.

LUCY J GUDINO . 2:04:51


So steady.
Well, OK, so whatever you just go through the slides.

VENUS VARSHA . 2:04:53


Thank you.

ANIRUDH UPPAL . 2:04:55


I'm gonna.

LUCY J GUDINO . 2:04:56


OK.
And because this is a lot of theory, you know, even I'm planning to give some case
studies and things like that, that still inciting interest among students.
Little difficult.

PRANCHAL MISHRA . left the meeting


LUCY J GUDINO . 2:05:10
So you have to keep reading.
OK.
Thank you so much for attending any feedback.
Feel free to commit to me if you're not able to understand whether I'm was a slow,
please let me know.

BAGAL SWATEJA RAMESH . left the meeting

LUCY J GUDINO . 2:05:23


OK.
Thank you so much.

VYSHAK S V . left the meeting

LUCY J GUDINO . 2:05:24


Bye bye.
See you next week, OK?

RAHUL KUMAR BURNWAL . 2:05:25


Thank you, ma'am. Bye.

ANIRUDH UPPAL . 2:05:26


Thank you, ma'am. Bye.

DAYALAN P . 2:05:27
Thank you, ma'am.

DILIP K.G. . left the meeting

PROSENJIT BARI . left the meeting

DAYALAN P . left the meeting

RAHUL KUMAR BURNWAL . left the meeting

FERNANDES ASHIER NOAH . left the meeting

LUCY J GUDINO . stopped transcription

You might also like