Pages

Getting system Information via Ubuntu terminal

In addition to the system monitor we can get a detailed view of the hardware specifications and system information about the machine via the terminal using lshw command.

lshw | more

GPU information

lspci | grep -i vga

Installing Berkeley UPC on a Linux cluster

You have 3 options as mentioned in the Berkeley UPC download site.

  1. Download  Berkeley UPC runtime source distribution , build it. Then the  'upcc' compiler  will  use their HTTP-based public UPC-to-C translator during compilation. 
  2. OR download both the runtime and  UPC-to-C translator, build them, and then point the runtime at the translator. This allows to compile UPC code without the Internet hence faster compilation times.
  3. OR download both the runtime and the GCC UPC binary compiler, build them, and point the runtime at GCC UPC installation.
I go with the first option.

Please consider that you need C/C++ and MPI compilers in order to install Berkeley UPC.

1. Download the .tar from here and extract it.


2. Create a new directory to build the Berkeley UPC. I name my build directory as 'build'

mkdir build
 cd build

3. From the build directory, run the configure script in the extracted source directory. 


../berkeley_upc-2.xx.x/configure CC="" CXX="" MPI_CC=""
Replace the " " with the compilers you have installed in the machine. In my case it's gcc, g++ and mpicc. If you have more efficient compilers please use them. It would take sometime to configure.  
e.g. ../berkeley_upc-2.xx.x/configure CC=gcc CXX=g++ MPI_CC=mpicc

4. Using the Makefile in the build directory, build the Berkeley upc source.
make

5. The Berkeley UPC compiler operates by invoking a UPC-to-C translator and then using a backend C compiler to generate native objects. After building the source you can define the UPC-C translator location. You can either build a local translator(as I explain next) or use the default network translator hosted by Berkeley.

6. Building the local UPC-C translator
   6.1. Download the source from here and extract it.
   6.2. Go to the extracted directory and build the source using make.
     make
 6.3 Now you have successfully built the translator.


7. After completion of successful build, it will show you the translator location path. Copy it to the clipboard. Path would be something like this.
~/upc/berkeley_upc_translator-2.18.0/open64/osprey1.0/targia32_ia64_nodebug

8. Move back to the build directory of Berkeley UPC compiler and you can see 2 folders called 'dbg' and 'opt'. In each folder there is a configuration file called 'upcc.conf'. Open these files in a text editor and replace the translator="path to default location" with the copied path to the location of the local UPC-C translator in the clipboard.

9. Test the Berkeley UPC build using following:
env UPCC_FLAGS= ./upcc --norc --version

This would show the specifications and version details of the UPC compiler and translator.
10. You may use the examples in the berkeley_upc-2.xx.x/upc-examples directory to test the build before installation.
11. Finally install the UPC compiler and run time.
make install 

You have completed the installation successfully. To try the compiler use:
upcc --version and upcrun commands.

2. Setting up SSH password-less log in

1. Define a common user for all the machines with the same user name and make the home directory /mirror

madhawa@node0:~$ sudo useradd -d /mirror/mpiuser -m -s /bin/bash mpiuser
madhawa@node0:~$ sudo passwd mpiuser

This would prompt for a new password for the user id "mpiuser". Do the same thing to all the machines.

2. Make the mpiuser as the owner of the /mirror

madhawa@node0:~$ sudo chown mpiuser /mirror

3. Install the SSH server in all the machines.

madhawa@node0:~$ sudo apt-get install openssh-server

4. Setup the password-less log in.

login with the new user in su mode.

madhawa@node0:~$ su mpiuser

Generate DSA key pair for the mpiuser.

mpiuser@node0:~$ ssh-keygen -t dsa

This will prompt for a passphrase. Leave it empty. 

A folder called .ssh is created in /mirror/mpiuser which contains the key file. Add this key to the authorized set of keys by issuing the following commands.

mpiuser@node0:~$ cd .ssh
mpiuser@node0:~/.ssh$ cat id_dsa.pub >> authorized_keys
mpiuser@node0:~/.ssh$ chmod 644 authorized_keys 

To test the password-less login, issue the following command on the master node and if successful, this would return the host name of the nodes without asking for password or passphrase.

mpiuser@node0:~$ ssh node1 hostname

Note: Sometimes you may be prompted to enter password for once. But it won't be required again. 





1. Setting Up the NFS on the Computer Cluster

I have 3 machines, each of which has Ubuntu 12.04 32bit installed. I have named my machine as node0, node1, node2.

Note:  If you want to rename your machines in edit the /etc/hostname file:
madhawa@node0:~$ sudo nano /etc/hosts
and replace the current machine name with your preferred name.

So let's start the setting up.

1. Define the host names by editing the /etc/hosts file:


madhawa@node0:~$ sudo nano /etc/hosts

and put the following. Note that I have removed the line 127.0.1.1 node0

127.0.0.1 localhost

10.16.32.10 node0
10.16.32.11 node1
10.16.32.12 node2

2. Install NFS server on the master node. I take the node0 as the master.

madhawa@node0:~$ sudo apt-get install nfs-kernel-server

3. Make a new directory that is to be shared among all the nodes. My shared folder is /mirror. In order to share the edit the /etc/exports file:

madhawa@node0:~$ mkdir /mirror
madhawa@node0:~$ sudo nano /etc/exports

And put the following line to set the permissions for the nfs. 

/mirror *(rw,sync)

4. Restart the server 

madhawa@node0:~$ sudo service nfs-kernel-server restart

5. Install the NFS client programs on the other machines.

madhawa@node1:~$ sudo apt-get install nfs-common

6. Mount the shared folder on the other nodes.

madhawa@node1:~$ sudo mount node0:/mirror /mirror
madhawa@node2:~$ sudo mount node0:/mirror /mirror

Note: This is the folder that is used to put the shared files required for the distributed execution. NFS enables remote mount and access to the files in another machine.




Setting up a small MPI Cluster using MPICH on Linux (Ubuntu 12.04)

In the next few posts I am going to explain my experience on how to setup a MPI cluster with 3 Linux machines. I referred several online resources, extracted information and arranged them in the posts. 

Specifications:
OS : Ubuntu 12.04 desktop or server Version
MPI : MPICH2
SSH : OpenSSH
Compiler : gcc 4.6.3
NFS

This post comes in 4 parts which describes the 4  main steps and they are as follows.

  1. Set up Network File System(NFS)
  2. Set up SSH password-less log in
  3. Install Compilers
  4. Install MPICH
So let's start!
(I'm putting the list of the references at the end of the post and I thank their authors for the great work)

Introduction to GPU computing

For those who are interested in GPU Computing and HPC, this is a good basement!

Show the world we want a phone worth keeping!


Worth spending few minutes on this! Watch the video and show your support here!

Dijsktra’s Algorithm in Java

Dijkstra’s shortest path algorithm is used to find the shortest path in a positive weighted graph from a given source to all the other nodes. There are 3 main steps of the algorithm.
 Initialization of single source – Inserting elements into required data structures and initialization
Extract Minimum – Extracting the node with the minimum value.
Generally the vertices in the graph can be stored 3 data structures: 1. Linear Array 2. Binary Heap/Priority Queue 3. Fibonacci Heap. Depending on the data structure we use the run time complexity of the algorithm differs.
Decrease key -  includes relaxation.

Dijkstra.java

Vertex.java

Edge.java



High Performance Computing Hardware

In high performance computing, it is important to know the parallel computing hardware options available for programmers when programming a computer cluster.

Distributed Memory Computing

A multiprocessor system in which each processor has its own memory. Since the the memory is distributed, message passing should be done among the individual nodes. Based on a set of processes. MPI is one such distributed memory programming platform.
Read more..

Shared Memory Computing

A multiprocessor system in which processors shares a global random access memory across the system. Based on a set of threads runs on each processor sharing the globally available memory. OpenMP is one such shared memory programming platform.

Partitioned Global Address Space (PGAS)

A combination of both shared and distributed memory programming architectures. It provides an abstraction of a globally shared memory to application level tasks. Furthermore it divides the global address space into sections called "partitions" so that individual threads can access their corresponding partition which is analogous to a distributed memory. 


Changing the username in Ubuntu/ Linux


  1. Log in using your username and password (username to be changed)
  2. Set a password for the root. Following will prompt for the new password.
    sudo passwd root
  3. Log out.exit
  4. Log in using the root account. Give the new password.
  5. If the user account of which the username is to be changed is still in use log out from that.
    pkill -KILL -u username
  6. Change the username and the home folder to the new user name.
    usermod -l -d /home/ -m
  7. Change the group name to the new group name that you want.
    groupmod -n
  8. Can check the group names using this.
    groups
  9. Better lock the root account.
  10. Log out from root and log in using the new username
  11. Done!

How to get Clear Fonts in lyx output PDF

For those who write their thesis papers, research papers or any article, Lyx is one of the most user friendly and trouble free Latex processor that can be used with latex. Usage is as easy as using any document processor like Microsoft word but lets you harness the power of Latex at the same time. But I have had a problem when generating the pdf using pdf2latex or any other tool that the font of the output pdf is somewhat unclear and blurred. To solve this do the following setting.
Document -> Settings -> Fonts -> Roman -> Latin Modern Roman

4 ways to boot/install Windows 7 USB - With or without additional tools

I have been searching for ways to install a Windows key into my USB so that I could install windows 7 without using a DVD-ROM. This article is the best, simplest and the effective one I found so far. It gives 4 ways to convert your flash drive to a bootable media with additional tools or just the command line. Hope it helps y'all.


Unsubscribe from spam emails in bulks

A clean inbox. Just one click away…for free!
Your inbox is a mess, and it’s time to admit defeat. Stop sorting through your emails, and start doing things you love again. "Unroll.me" is here to help you.
Sign up here!

Installing MPICH

For those who are interested in building up an MPI enabled cluster from the scratch, This is a very good place to start. They have used MPICH as the MPI implementation.

Online Courses from the Best Universities in the World!


Online courses and classes offered by most prestigious universities of the world on various subjects like Computer Science, Finance, Marketing, Music....and many more for free!. Here are the links to enroll:



Coursera


https://www.coursera.org

Coursera is an education company that partners with the top universities and organizations in the world to offer courses online for anyone to take, for free. Our technology enables our partners to teach millions of students rather than hundreds.



Udacity

https://www.udacity.com/courses

Udacity was born out of a Stanford University experiment in which Sebastian Thrun and Peter Norvig offered their "Introduction to Artificial Intelligence" course online to anyone, for free. Over 160,000 students in more than 190 countries enrolled and not much later, Udacity was born. Now we're a growing team of educators and engineers on a mission to change the future of education. By making high-quality classes affordable and accessible for students across the globe: Udacity is democratizing education.


Academic Earth


http://academicearth.org/online-college-courses/

Academic Earth believes that everyone has the right to a world-class education. Recognizing the existing barriers in academia, we continue our efforts to curate an unparalleled collection of free online courses from the world’s top universities. 

Online Money Making,Work from Home

Work from Home. Earn $2000/month. No Investment. Part Time, 1-2h/day.

Wanted Online Internet job workers. Job is only through Internet. Work from home part time jobs. You can earn $1500-2500/month working 1-2 hours/day, no matter where you live. These are genuine Data entry jobs & Internet jobs. No Investment required. Only serious enquirers please. 
For more details visit

http://www.earnparttimejobs.com/index.php?id=4630710