Monday 12 March 2018

Magnetization vs Time (FIG 8.7)

The exact value of the magnetization of a material at a given point of time is uncertain due to the random nature of the spins. This can be demonstrated by plotting the Magnetization as a function of time for a varying range of temperatures. In this Ising Model simulation a 10 x 10 lattice configuration is used with 1000 Monte Carlo sweeps for each temperature point. The time is not real time but solely a product of the Monte Carlo method, this means that one unit of time is one sweep through the entire lattice or one Monte Carlo sweep. This gives each spin the opportunity to flip during each time step. [1]

The beginning temperature is set to 1.5 and the result of which can be seen in Figure 1. The magnetization of the lattice is in the ferromagnetic state which is to be expected at this low temperature. There are a couple of instances in time where the magnetization drops  but these are fairly rare occurrences and just a small fluctuation due to the random nature in the Monte Carlo calculation. For the most part however all the spins are aligned and the lattice is in a ferromagnetic state.
Figure 1. Magnetization vs Time for T = 1.5
When the temperature is slightly increased to 2 as can be seen in figure 2. The fluctuations have increased significantly but the material is still in a ferromagnetic state. The average value of the magnetism has dropped to around to a magnetization value of roughly 0.9. The importance of the increase in fluctuations as they signal that the model is approaching a second order phase transition known as the critical point [1]. This point is sensitive to minor changes in the magnetic field or temperature. This will be shown even clearer when the temperature is raised closer to the Curie temperature.
Figure 2. Magnetization vs Time for T = 2
When this temperature is raised further to 2.25 the fluctuations are much larger and the system fluctuates around ± 0.8. The Curie temperature is 2.27 so the value the simulation is at is very close to that resulting in changes in phase from ferromagnetic to paramagnetic at certain instances of time. This is shown below in figure 3.
Figure 3. Magnetization vs Time for T = 2.25
In figure 4 the temperature is raised to 4 and the fluctuations have decreased and are situated approximately at M = ±0.2. The temperature is now above 2.27 and the system is now in the paragmagnetic state.
Figure 4. Magnetization vs Time for T = 4

The results achieved validated up by the the results found in Giordanos book In figure 5 & 6. The fluctuations due to the random nature of the Ising Model show it is difficult to predict the exact magnetization at a given temperature. However it is possible to get a good idea of what level of magnetization at a given temperature.
Figure 5. Magnetization vs Time from Computational physics by Giordano for T = 1.5 & T = 2

Figure 6. Magnetization vs Time from Computational physics by Giordano for T = 2.25 & T = 4


Sunday 4 March 2018

Beowulf Cluster - The beginning of something big


Beowulf Cluster - The beginning of something big 

A Beowulf cluster is essentially a system consisting of at least 2 PCs working together to perform a given task. Each PC is known as a node with one PC set up to be the server node and the rest as client nodes. The server node controls the whole cluster and serves files to the client nodes. The client nodes are effectively “dumb nodes” and are given a IP address from the server node and can be operated remotely via the server node. The server node is the gateway node to the outside world and is the node that the user would be interfacing with [7]. The operating system that will be used for the cluster is Ubuntu which is a Linux distribution. There are two main types of software packages used to achieve the Beowulf cluster, PVM (Parallel Virtual Machine) and MPI (Message Passing Interface) libraries. The main differences between both libraries are:
  • Process Control: PVM can start and stop tasks, to find out which tasks are running, and possibly where they are running. MPI is much more static, It contains functions to start a group of tasks and to send a kill signal to a group of tasks
  • Resource Control: PVM is dynamic and can utilize nodes when required. This allows load balancing, task migration and fault tolerance. MPI is static and each node is utilized simultaneously. All potential communication paths are known at start-up. The advantage of this is higher performance but lacks in load balancing, task migration and fault tolerance.
  • Message Passing operations: PVM provides very simple message passing capabilities. MPI has a much wider range of message passing capabilities MPI-2 has 248 functions for message-passing operations
  • Fault Tolerance: In PVM If one node fails, the entire system adapts, and the application continues without the failed node. In MPI If one node fails, the entire application fails due to MPIs static nature. [8]

For the application in this project, MPI is the better of the two options due to its higher processing power due to its superior message passing capabilities. The application will not take advantage of PVMs many benefits. Due to the repeated nature of the application there is no need for task migration. Fault tolerance would be beneficial, but this is targeted more at high end parallel processing systems with hundreds of nodes running week/month long simulations. The probability of one of the 8 nodes failing is low but in the case that it does the simulation times for the application won’t be nearly long as the high-end systems causing little disruption.

All the components are now in including the switch, 8 PCs and all the peripherals. And I  have just started wiping them and installing Ubuntu.


Figure 1. Pile of Junk