Glossary

What do any of these terms mean?

This page will attempt to explain computer terms in an approachable manner.

Basic Terminology

Computer, or Machine

    • An electronic device for storing and computing data.

Desktop

    • A computer that lives on a desk. This will have monitor(s), a keyboard, a mouse, and possibly more peripherals.

https://cdn2.channelpro.co.uk/sites/channelpro/files/2019/01/desktop_pc.jpg

Software, Program, Process, or Code

    • Software is things that run on a computer. These things are called Programs. Software is written using Code. Another word for a Program is a Process.

https://www.goodcore.co.uk/blog/wp-content/uploads/2019/08/types-of-software.png

Hardware

    • The physical parts of a computer.

https://www.lifewire.com/thmb/-HqTo5VoM4OZ_vZswOECJl62ZwU=/3000x2000/filters:no_upscale():max_bytes(150000):strip_icc()/computer-hardware-2625895-final-v1-8c909b8a32434e26a225db2314823bb2.jpg

Motherboard

    • The Motherboard of a computer is where all the different parts of a computer plug in, such as the monitor (screen) and keyboard.

https://images.esellerpro.com/2131/I/154/575/P1010724.JPG

RAM / Memory

    • The place to store data short-term is RAM. This is like Disks, except this is much more expensive, and exceedingly faster, but data written to RAM will not be preserved when the computer is shut down (this is called being volatile memory).

    • Typically, RAM is discussed in units of GigaBytes (GB).

https://www.extremetech.com/wp-content/uploads/2016/02/DRAM-Feature-640x354.jpg

Disks

    • The place to store data long-term is called Disk. This is like RAM, except this is much cheaper, exceedingly slower, and it will last if the computer is turned off (this is called being persistent memory).

    • Typically, disks are discussed in units of GigaBytes (GB) and/or TeraBytes (TB), where a TeraByte is 1,000 GigaBytes.

    • These can be a HDD or a SSD, which both implement persistent memory in different ways.

https://www.backblaze.com/blog/wp-content/uploads/2018/03/hdd_vs_ssd_bz.png

CPU, or Processor

    • A CPU is the "brain" of the computer, it does all the thinking, or computing. The CPU is made of core(s), registers, caches, and more.

https://icdn7.digitaltrends.com/image/amd-ryzen-7-cpu-insocket1-2-1500x1000.jpg

Core

    • If a CPU has several cores, this is analogous to a team having several team members. Each team member can simultaneously do their own work, independently or in collaboration. A CPU with four processors means it can do four things simultaneously, like having a team with four people on it.

Socket

    • A CPU connects to the motherboard of a computer via a Socket.

GPU

    • A GPU is used to render/display video game graphics, and it can be used for data intensive computations.

https://cdn.wccftech.com/wp-content/uploads/2019/07/GeForce_Super-2080S-4_1561506665-Custom-1.jpg

More on CPUs and Processes

Threaded

    • A Program, or Process, doing something sequentially is known as a Thread.

Multi-Threading

    • A Process that does multiple sequential tasks simultaneously is Multi-Threaded.

    • This can done by using several Cores, or by sharing a single Core and trading off which thread gets to run (but they do not share resources).

https://i.stack.imgur.com/BOMPb.png

Hyper-Threading

    • Hyper-Threading is multi-threading on a single CPU with several Cores, similar to Multi-Threading, but they share resources.


Networking and Storage

Storage

    • Storage refers to one or more disks.

    • There is usually some problem with storage, such as not having enough space, not being fast enough, etc.

Storage Array

    • A Storage Array must have at least two disks, with the same issues.

https://www.dnsstuff.com/wp-content/uploads/2019/10/what-is-storage-array-1024x536.png

Network

    • Network is connectivity between computers. The internet is a giant network with lots and lots of computers connected to it.

Network Storage

    • Network Storage is storage on a server that is available for others to use.

    • This can have the same issues as Storage and Storage Arrays.

Scratch

    • Scratch is network storage that is not backed up.

Network Switch, or Switch

    • A Switch connects a computer to the internet and it controls the traffics between computers on a network.

https://static.bhphoto.com/images/images2500x2500/1547724927_1454205.jpg

Network Fabric, or Fabric

    • A Fabric is the way in which the different computers communicate on a network.


Servers, Clusters, and Nodes

What is a Server?

Server

    • A server is someone else's computer that can be connected to over the network (over the internet).

    • Many servers will live in a server rack enclosure, where each rack is a different server. This is basically a cabinet full of computers on shelves.

https://www.3benefitsof.com/wp-content/uploads/2013/12/Server-Rack-300x187.jpg

Nodes

    • The individual servers in a cluster are called Nodes.

Cluster

    • A cluster is a collection of servers (or nodes) where each node has a part of a local network that only the other node in that collection can access. There is usually one or two login nodes in this collection that are the only ones connected to the internet. This makes the other nodes are inaccessible unless it is through the login nodes.


Computing

FLOP

    • Floating Point Operation. This is used as a unit of compute capability.

TFLOP

    • A million million FLOPs, or 1,000,000,000,000 FLOPs.

High Performance Computing (HPC), or Super Computing

    • A server or cluster that has the sufficient hardware to run programs that use several Cores and/or Nodes, respectively, to execute Process(es). Programs that run on these often use a Message Passing Interface (MPI) to communicate between Process(es).

High Throughput Computing

    • A Program that uses a lot of hardware for a long time to finish a task.

    • These could last for months or years.

Parallel Computing

    • A Program with many Threads being are carried out concurrently (simultaneously) and have access to a shared memory.

    • This includes Multi-Threading, Hyper-Threading, Massively Parallel Computing, Embarrassingly Parallel Computing, and Distributed Computing.

Massively Parallel Computing

    • A Program is Massively Parallel if it can run on many Cores to perform a set of coordinated computations.

Embarrassingly Parallel Computing

    • A Program is embarrassingly parallel if it has Processes that can be executed completely independent of each other.

https://computing.llnl.gov/tutorials/parallel_comp/images/domain_decomp.gif

Distributed Computing

    • A Program is an example of Distributed Computing if the Processes can run on multiple servers simultaneously.

Cloud Computing

    • This is all of the above, but performed on demand on someone else's server(s)/cluster(s) for a cost.