22. What is a computer#

some dev jokes

  • 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?#

how much do we talk about them change over time

22.2. Mechanical Calculators#

how do we actually like physically make it be machine

pascal

  • 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

pascal schematic

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.

timeline of computing

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#

Von Neumann Architecturediagram

a bit mroe detail

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.

URI has a MS in Quantum Computing in the Physics Dept

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.

Sources: https://www.intel.com/content/www/us/en/history/museum-story-of-intel-4004.html#:~:text=That’s when the Intel®,wide variety of electronic devices.

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.

URI has a MS in Quantum Computing in the Physics Dept

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.

Sources: https://www.intel.com/content/www/us/en/history/museum-story-of-intel-4004.html#:~:text=That’s when the Intel®,wide variety of electronic devices.

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 or interactive or

  • schedule 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.