next up previous
Next: Working in a Unix Up: AY575 class notes Previous: Course overview

Subsections

Introduction to computing hardware and NMSU/Astronomy computing

Hardware

Question: what are key components of computers and their functions?

Computer components and functions:


\begin{shaded}
\textit{
Understand and be able to articulate the different parts of computer hardware and their basic functions.
}
\end{shaded}

Bits, bytes, and whatever

Bit: single binary unit of information (0/1).

Byte: 8-bits, usually the smallest unit used to represent something. How many different quantities can a byte represent?

Data types /sizes: character (ASCII 1 byte, or more for other character encodings) short integer (2 bytes), integer (4 bytes), long integer (4/8 bytes), float (4/8 bytes), double (8/16 bytes)

How large a range of data values in a given data type?


\begin{shaded}
\textit{
Know what bits and bytes are. Know the basic variable types and be able to give their numerical ranges.
}
\end{shaded}

file/data sizes:

Question: APOGEE image cubes are 2048x2048x47 reads: how much memory?

Question: MULITDARK simulations have 2048x2048x2048 particles with full phase space information: how much memory?

Physical memory and swap space: code with memory in mind


\begin{shaded}
\textit{
Be able to calculate how much memory will be used for a specified amount of data.
}
\end{shaded}

Integer representation: unsigned and signed integers (e.g., two's complement)

Floating point representation: IEEE, note precision issues

binary vs character representation

architectures and byte-swapping (big-endian vs little-endian)

Computing software

Operating systems

Operating system: controls basic interface between user and hardware

OS must evolve as new hardware is developed, leading to versions, with implications for stability/support/security. The main core of the operating system is called the kernel, which provides a programming interface for programs.

Linux implementations (distros): include basic Linux kernel plus add-on packages, usually with a package manager (e.g., yum, apt-get)

Operating system interfaces

Operating system generally provides kernel and a core set of commands. On top of this, there may be command interpreters and/or graphical interfaces to commands.

Command-line interfaces:

Graphical interfaces: "window" system.


\begin{shaded}
\textit{
Understand and be able to articulate the functions/differences of operating systems, shells, and windowing systems.
}
\end{shaded}

Applications

A large amount of software has been developed to work under a given operating system, and these are available as packages: examples are editors, compilers, etc. (do a rpm -q -a on one of the Linux machine to see what is installed!). In fact, the shells are installable applications, so the distinction between core software and applications is not totally clear.

Network communication

Various software allows for various actions across the network:

Remember, network communication is slower than disk communication, and affects other who are using the network.

NMSU/Astronomy (academic)

Disk sharing is accomplished through NFS. The NIS master has a table of all mounted partitions, and makes them accessible via /home/partitionname. However, the machine serving the partition needs to give permission. By default, server partitions are shared to all machines, and main partition on client machines are shared to the servers, but client partitions are not shared with other clients except by request. Local partitions are also available via the NFS interface, with no penalty, so it is a good idea to use the /home/partitionname for generic disk access.

Note that the default home directories for students (/home/users/name) is located on the astronomy server. As a result, if you work in or under your home directory when logged into your machine, you are using the network whenever you read/write from disk. It is generally better to use the local disk if you are doing any significant I/O (note distinction between /partitionname/ and /partitionname-data/)

Server shares software that is not installable as packages, so using such software invokes network traffic. Since the server disk is generally checked whenever you type a command, you may see slow response at your computer if the network is being excessively taxed.


\begin{shaded}
\textit{
Understand enough about the NMSU Astronomy setup to reco...
...e logged into, and where you are reading/writing from/to on disk.
}
\end{shaded}

Linux resource usage

Determining CPU, disk, and memory capability: /proc/cpuinfo, /proc/meminfo, df, various grapical interface tools (Mac OS X: system_profiler)

(note man command to get information on any command!)

machine types, etc.: uname -a

Determining CPU, disk, and memory usage: top, ps, w, du


next up previous
Next: Working in a Unix Up: AY575 class notes Previous: Course overview
Jon Holtzman 2015-12-11