This page will attempt to explain computer terms in an approachable manner.
An electronic device for storing and computing data.
A computer that lives on a desk. This will have monitor(s), a keyboard, a mouse, and possibly more peripherals.
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.
The physical parts of a computer.
The Motherboard of a computer is where all the different parts of a computer plug in, such as the monitor (screen) and keyboard.
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).
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.
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.
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.
A CPU connects to the motherboard of a computer via a Socket.
A GPU is used to render/display video game graphics, and it can be used for data intensive computations.
A Program, or Process, doing something sequentially is known as a Thread.
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).
Hyper-Threading is multi-threading on a single CPU with several Cores, similar to Multi-Threading, but they share resources.
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.
A Storage Array must have at least two disks, with the same issues.
Network is connectivity between computers. The internet is a giant network with lots and lots of computers connected to it.
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 is network storage that is not backed up.
A Switch connects a computer to the internet and it controls the traffics between computers on a network.
A Fabric is the way in which the different computers communicate on a network.
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.
The individual servers in a cluster are called Nodes.
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.
Floating Point Operation. This is used as a unit of compute capability.
A million million FLOPs, or 1,000,000,000,000 FLOPs.
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).
A Program that uses a lot of hardware for a long time to finish a task.
These could last for months or years.
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.
A Program is Massively Parallel if it can run on many Cores to perform a set of coordinated computations.
A Program is embarrassingly parallel if it has Processes that can be executed completely independent of each other.
A Program is an example of Distributed Computing if the Processes can run on multiple servers simultaneously.
This is all of the above, but performed on demand on someone else's server(s)/cluster(s) for a cost.