22. What is a computer#
how, physically, do we get the components we have seen?
what other components do we need?
how are those implemented
How have computers changed over time?
at the physical level
what was the context and motivation for these advances?
how does that context influence how we use computers today?
how does that influence computing as a discipline?
22.1. Let’s start with a dictionary#
we can start with a dictionary definition
note that this starts with reference to a person.
22.1.1. Computers as people#
from this example we see that this particular dictionary is useful because it also includes where the term originated and where in that particular usage it started appearing and so these are pretty all right this is starting 1646 1707
Use of the word computer to refer people was still common as recently as the 1950s
the movie hidden figures talks about black women mathematicians who helped the US win the space race.
the book hidden figures is available at URI’s library
22.1.2. Computers as Machines#
Computers as machines started later. We started with mechanical, analog and then moved to electronic and then digital.
22.1.3. How much do we talk about computers?#
22.2. Mechanical Calculators#
how do we actually like physically make it be machine
Pascaline
Pascal 1642
Originally created to perform addition and subtraction
Used by a tax collector
Why did he make this?
He was 18 and his father was a tax commissioner in France and he wanted to reduce his father’s workload
so he invented this calulator machine and received royal privilege from France in 1649 to be only person allowed to build and sell calculating machines. Computer here is a mechanical calculators
Contrast this royal privelege with the 1970s where in resolving some other conflict, a court that declared the content of the computer cannot be copyrighted and it’s free for anyone to use the concept of a computer
22.3. How did this change over time?#
calculators remained analog, working with mechanical systems for over a hundred years until using electricity becomes easier
we then start doing electrical signal processing so we can move from analog signals
between Springs and dampers, the mechanical things are used to build these mechanical calculators and the electrical components so resistors and transistors.
22.3.1. Model K Adder (1937)#
George Stibitz took some pieces at home from work at Bell Laboratory and got it working on his kitchen table.
it can do four bit addition
uses a telephone relay switchs or an electromechanical
Relays are designed to repeat, or relay, a signal to the next circuit to compelte long distance telegraphs and early telphone. As the signal transpits down the cable (one circuit) it gets weaker due to loss, so it has to be repeated at some point to amplify the magnitude of it for the next length of the journey.
precursor to the complex number calculator he demonstrated how this works in combination with Telegraph for the first remote access
complex number calulator was at Bell Labs in New York City at the time in 1940 at a Confrence at Dartmouth in Hanover New Hampshire and he use a telegraph to do remote calculations on this calculator and bring them the numbers back
22.3.2. Intel 4004 (1971)#
First commercially produced microprocessor
2,250 transistors
Could perform up to 90,000 operations per second in four bit chunks
740 kHz clock speed
22.3.3. So how do these thigns actually work#
As electricity became more available, they realized that in terms of mathematical operations, electrical components resemble springs and switches
22.4. Early Computers#
first vaccuum tubes: or diodes
diodes prevent flow of electricity in one direction and allow in the other. they can be used to create circuits that behave like the logical operations, and create the gates.
diodes only are easy for
&
and|
gates,transistors can operate as a switch or amplifier and can also be used to build logic gates
they’re faster, smaller, and better at more types of gates than diodes
During this time small, lots of small computers were made, but each was completely made by its creators, there was no standards per se.
These computers were also stored program computers. Meaning their operation at a program level was fixed by the circuitry.
switch the circuit to do different things between the numbers so this would get us bitwise operations of an indoor and outdoor on our numbers
22.5. von Neumann Architecture#
what else do we need besides ALU for to have a whole computer
we eventually need clocks to time and synchronize things to know ofr instance when to clear and when to change memory values so that you if we wanted to do multiple things in sequence we could do that
In 1945 we get a draft of a general template. This is basically what we use today.
22.6. Apollo Guidance Computer (AGC)#
The AGC was the onboard computer for NASA’s Apollo programs. It provided navigation for the control capsule as well as controlled the spacecraft during moon landings. The AGC had only 72KB of fixed memory (589,824 bits). Unlike many earlier computers, the software for the AGC was stored in its memory and was not physically built into its hardware’s circuitry.
Additionally, this computer had RAM, which was memory that could be changed by the computer while it was running. This memory had a capacity of only 4KB (32,768 bits), which was still enough to store all the data needed to perform all calculations necessary for the missions. The AGC could be controlled by the astronauts in the command capsule by sending commands via a numeric keyboard. Its user interface consisted of a simple screen and a set of status lights that relayed information to the astronauts.
This computer is very similar to how modern computers work in the sense that it can keep data in its fixed memory even while the computer is off.
To learn more about the AGC and how it worked, you can view this article, or view the official NASA public docs on it.
22.7. Storage#
there are some thigns we have not yet seen in detail in that diagram
Ram Is Random Access we can access it whenever we want we can read and write to it
ROM: is read only memory; instructions are permanently saved in it
In the stored program computers, the programs were in ROM.
The very earliest computers could not store any values without power.
Register: data currently processing
Memory: will be required for processing
Disk: long term storage
How was the pace of today’s class
[ ] way too slow
[ ] a little slow
[ ] just right
[ ] a little fast
[ ] way too fast
22.8. Questions After Class#
Note
these are last semesters. i’m behind on the new ones
22.8.1. What are the PC, MAR, MDR, etc. and what do they do#
They are various registers that each have a specific role. Learning all of these these in more detail is a good Explore badge or a single one is in more practice.
22.8.2. how does a motherboard work with all of these#
A motherboard contains all most of those components. This is also a good Deeper explroation.
22.8.3. When defining a computer, is it best to define the most current model of a computer? Or how everything functions bare bones?#
What definition dependsd on the context. If you are talking to a child who is trying to learn basic typing they need to know different things than a teenager trying to choose what type of comptuer to bring to college, which is different than the model you need to keep in mind when you’re working in a high level language, which is different than what you need when you are writing drivers.
22.8.4. How do Quantum computer logic gates differ from what we use now exactly#
Quantum computers operate on a fundamentally different object, instead of bits they have qubits. There represent, essetially some uncertainty, or randomness in the behavior, so then there are different operations needed.
22.8.5. Intel 4004 (1971) -> How it worked by Tyler Hanlon#
This was the first general purpose programmable processor which people could buy and then make or buy their own software to customize it with. This was a breakthorugh in computing as it allowed consumers to have a say in what software was used in their electronics without having to make their own. This was extremely influential advancmenet inearly comuting technologies becuase it made multiple softwares more accessible and deliverable to a wider audience. It is one of the smallest microprocessors ever made, and was develope for use in a Japanese calculator company, but was powerful enought o actually be used for a wide variety of functions.
https://spectrum.ieee.org/chip-hall-of-fame-intel-4004-microprocessor
22.9. Questions After Class#
Note
these are last semesters. i’m behind on the new ones
22.9.1. What are the PC, MAR, MDR, etc. and what do they do#
They are various registers that each have a specific role. Learning all of these these in more detail is a good Explore badge or a single one is in more practice.
22.9.2. how does a motherboard work with all of these#
A motherboard contains all most of those components. This is also a good Deeper explroation.
22.9.3. When defining a computer, is it best to define the most current model of a computer? Or how everything functions bare bones?#
What definition dependsd on the context. If you are talking to a child who is trying to learn basic typing they need to know different things than a teenager trying to choose what type of comptuer to bring to college, which is different than the model you need to keep in mind when you’re working in a high level language, which is different than what you need when you are writing drivers.
22.9.4. How do Quantum computer logic gates differ from what we use now exactly#
Quantum computers operate on a fundamentally different object, instead of bits they have qubits. There represent, essetially some uncertainty, or randomness in the behavior, so then there are different operations needed.
22.9.5. Intel 4004 (1971) -> How it worked by Tyler Hanlon#
This was the first general purpose programmable processor which people could buy and then make or buy their own software to customize it with. This was a breakthorugh in computing as it allowed consumers to have a say in what software was used in their electronics without having to make their own. This was extremely influential advancmenet inearly comuting technologies becuase it made multiple softwares more accessible and deliverable to a wider audience. It is one of the smallest microprocessors ever made, and was develope for use in a Japanese calculator company, but was powerful enought o actually be used for a wide variety of functions.
https://spectrum.ieee.org/chip-hall-of-fame-intel-4004-microprocessor
22.10. Scheduling Jobs#
Now that we’re done with some history talk, let’s go back to talking about connecting and working with remote servers.
What happens when we login to seawulf? Well, seawulf is a high performane computing (HPC) cluster. In this cluster we have a combination of computing power, CPU, GPU, RAM, along with Storage.
Servers like this is created because day by day we evlove and we expand and we try to discover and learn more about the world. That includes a lot of data collection and data processing. And to be able to do just that we need to a lot of computing power that most of us can’t to afford put on our desks. That’s how remote servers came to life. We have this computing power that is shared among a large number of us. And so to be able to share these resources correctly, we need to be respectful to the others sharing the resources with us and sometimes we have to wait a turn to get to use some of this power especially if it’s a big chunk that we’re trying to use.
So first, let’s remember that when we login to seawulf the collection of resources that we access is called the “login node”. And that login node is immediately shared by a large number of people. So it is not very considerate to do any computations on that node because it is meant to be used by users to login and schedule jobs.
From here, we have two options, we either
start an interactive session and reserve the required resources for that using
salloc
orinteractive
orschedule a job with the estimated required resources and time limit using
sbatch
salloc
or interactive
are used to reserve resource in real time and use them in a live session. We use that for debugging purposes and using power in an interactive session
sbatch
is used to schedule a job to run at a time that the resources are available and the queue is clear. We use that when we want to do some data processing without needing to work interactively with the files or the program.
We saw how to use interactive
the last time.
For sbatch
we need a batch script that starts with #!/bin/bash
and then we can wither specify the requested resources within the batch script using #SBATCH
at the begining of the line and the argument right after it.
Or we can use the same arguments in the command line with the sbatch
.
We can later view the outputs of the job in a .out
file that holds the STDOUT and the STDERR content of that batch script.
Use sbatch --help
and salloc --help
to learn more about the both commands.
Also read the documentation
Don’t forget to logout of seawulf when done
[ayman_sandouk@seawulf ~]$ logout
Connection to seawulf.uri.edu closed.