Pages

Showing posts with label list. Show all posts
Showing posts with label list. Show all posts

Fortran Resources (recipes, libraries, learning materials, etc)

Fortran95 features
from Wikipedia

List of Fortran Numerical Libraries
from Wikipedia

Numerical Methods for Fortran Programmars
from people.sc.fsu.edu
contain links to fortran libraries and subroutines

Scientific Programming and Numerical Computation
from Wu-ting Tsai, National Taiwan University.

Fortran95 Interface to Matlab
from Matlab

Fortran Resources List
from BCS Fortran Specialist Group

Fortran Wiki
contains tutorials and FORTRAN code collections
contains list of links that contain FORTRAN codes

Fortran Tutorials ( a list of tutorials)
a list form The Fortran Company

Computational Physics using Fortran (official link)
an NPTEL course with a brief introduction to Fortran

Fortran90 Tutorial 
From MTU


Checking the status of the submitted job in HPC

The submitted jobs in PBS queue system can be checked whether they are in queue still, or running, or completed, etc. The command to use (in PBS software) is qstate.

Job id            Name             User              Time Use S Queue
----------------  ---------------- ----------------  -------- - -----
306.clr     jobname              user              10:36:59 R worke

Commands to use are:
qstat    (lists all the jobs with some details)
qstat -n  (list all the jobs with total number of CPUs running the jobs
qstat -u user (list all the jobs submitted by the user)


To see a list of things to know (for a newbie) to use high performance cluster, click here

To run jobs in specific node in a HPC cluster

Some time, you may want to run a job in a specific folder. For example, to check if all the nodes are working properly after restarting the cluster.

1. Use #PBS -Wall to mention the name

A simplest way is to run as many number of jobs as that of the node at the same time (which can take some time to complete) and use

qstat -n 

to see whether all the nodes are used for the calculation.

To see all the nodes in a cluster, use
pbsnodes -a

cluster
     Mom = headnodename.companyname
     ntype = PBS
     state = free
     pcpus = 24
     resources_available.arch = linux
     resources_available.host = cluster
     resources_available.mem = 264417884kb
     resources_available.ncpus = 24
     resources_available.vnode = cluster
     resources_assigned.accelerator_memory = 0kb
     resources_assigned.mem = 0kb
     resources_assigned.naccelerators = 0
     resources_assigned.ncpus = 0
     resources_assigned.netwins = 0
     resources_assigned.vmem = 0kb
     resv_enable = True
     sharing = default_shared

cn1
     Mom = cn2.aracluster
     ntype = PBS
     state = free
     pcpus = 24
     resources_available.arch = linux
     resources_available.host = cn2
     resources_available.mem = 264424324kb
     resources_available.ncpus = 24
     resources_available.vnode = cn2
     resources_assigned.accelerator_memory = 0kb
     resources_assigned.mem = 0kb
     resources_assigned.naccelerators = 0
     resources_assigned.ncpus = 0
     resources_assigned.netwins = 0
     resources_assigned.vmem = 0kb
     resv_enable = True
     sharing = default_shared

cn2
     Mom = cn1.aracluster
     ntype = PBS
     state = free
     pcpus = 24
     resources_available.arch = linux
     resources_available.host = cn1
     resources_available.mem = 264424336kb
     resources_available.ncpus = 24
     resources_available.vnode = cn1
     resources_assigned.accelerator_memory = 0kb
     resources_assigned.mem = 0kb
     resources_assigned.naccelerators = 0
     resources_assigned.ncpus = 0
     resources_assigned.netwins = 0
     resources_assigned.vmem = 0kb
     resv_enable = True
     sharing = default_shared

Here, cn1, cn2 are the nodenames. The first one 'cluster' is the name of the head node.

Mentions these names in the #PBS option. For example,

#PBS -l nodes=cn1;ncpus=4

This option will run 4 cpus from cn1 node in the cluster.

=======================================================
You can use

cat /etc/hosts

to display the nodenames.

Click here to go back to "Important things to before you work on HPC cluster"


Important things to before you work on High Performance Computing (HPC) cluster: For Beginners


  1. Why HPC is important and where it is used?
  2. For login, use ssh login and use bitvise ssh client from windows
  3. See the default shell, echo '$0' or echo '$SHELL' 
  4. Which Scheduling software is used by the cluster?
  5. Changing user privileges (chmod)  
  6. Copying files or directories from a cluster to local and vice-versa
  7. List all the compilers in the cluster
  8. List the number nodes in the cluster
  9. To see the OS, type, bit, etc. 
  10. List the active and dead nodes
  11. Submit jobs to PBS que (qsub)
  12. How to submit multiple jobs using qsub?
  13. See the status of the submitted job (qstat)
  14. Terminating a Job (qdel)
  15. Run a job in a specific node
  16. What is mean by compiling serially
  17. What is mean by compiling parallel
  18. Compiling C, C++ and Fortran code using gnu/intel compilers
  19. Using make: configure, make and make install
  20. List of commands need to use sheduler
  21. How to check the size of files/files 
  22. How to check disk space used and free
  23. Working with BLAS library
  24. Working with LAPACK library
  25. Working with OpenMP
  26. Working with Intel Fortran + MKL Libraries
  27. Working with Intel Fortran Compiler Cluster edition 
  28. Working with FFTW library
  29. Fortran usage
  30. C usage
  31. C++ usage
  32. Python usage
  33. Using watch command to see the changes on the screen
  34. List of Scripts to work with HPC, cluster, supercomputer
Note: Add your suggestion on what you want to add here. We will add them in future.

List of numerical libraries used in Quantum Chemistry / Computational Materials Science codes

The speed of a quantum chemical calculation often depends on how efficient the used numerical libraries are. Here is a list of numerical libraries that are widely used in various scientific codes.

C Program based
FFTW
GNU Scientific Libarary
Intel MKL (includes BLAS, LAPACK, ScaLAPACK, FFT, etc)

C++ Program based
Armadillo
LAPACK++
Intel MKL

Fortran Program based
LAPACK
LINPACK
Netlib

Python Program based
NumPy
SciPy
ScientificPython
SymPy



How to do research Series (1/100)

Four golden lessons

by Prof. Steven Weinberg, Nobel Laureate in Physics (from Nature article)

Rule #1:

"I managed to get a quick PhD — though when I got it I knew almost nothing about physics. But I did learn one big thing: that no one knows everything, and you don't have to."


Rule #2:

"When I was teaching at the Massachusetts Institute of Technology in the late 1960s, a student told me that he wanted to go into general relativity rather than the area I was working on, elementary particle physics, because the principles of the former were well known, while the latter seemed like a mess to him. It struck me that he had just given a perfectly good reason for doing the opposite."

"My advice is to go for the messes — that's where the action is."

Rule #3:

It is to forgive yourself for wasting time. As you will never be sure which are the right problems to work on, most of the time that you spend in the laboratory or at your desk will be wasted. If you want to be creative, then you will have to get used to spending most of your time not being creative, to being becalmed on the ocean of scientific knowledge.

Rule #4:

Finally, learn something about the history of science, or at a minimum the history of your own branch of science. You can get great satisfaction by recognizing that your work in science is a part of history.

Reference:

These are extracted from: S. Wienberg, Scientist: Four golden lessons, Nature 426, 389 (27 November 2003) | doi:10.1038/426389a

Things to do when you leave your PC Series - Part 1

Now a days, it is normal to upgrade to a new PC. In older PC, we may use a lot of things such as synchronizing browsers, installing Dropbox etc.

  • Before abandon old systems, these things have to be given much importance. The update link to such systems should be removed (especially for Dropbox etc).

  • Need to uninstall important personal packages. If some one is interested in a package, let them install the package again.

If you are using Mendeley, click here to read related to Medeley desktop.

(will be updated soon...)


Tools for a Scientific Code Developer

Through reading, I understand that following skills are essential for a researcher who write code.

Apart from a good command in Linux OS and bash scripting, I understand that coding ability using following languages is essential.
  1. Python 
  2. C and C++
  3. Fortran
Following sites are useful

        In this site, I like Academia, StackOverflow, Unix & Linux etc. The good aspect I like is that you will get excellent answers.

GitHub Repository   
          One can use this site for version control of the code development.


Regular Expression 

       Regular expression is a key skill for a programmer. This regexr.com https://regexr.com/ provides a userfriendly plaform to learn and build REGEX expressions.

You may be interested in these posts

Error in image file conversion: convert-im6.q16: not authorized `test.eps' @ error/constitute.c/WriteImage/1037.

This error is because of the vulnerability. This allows remote execution of code using image formats. So, some Linux distributions by defaul...