Difference between revisions of "Programming"

From HPC
Jump to: navigation , search
m
Line 7: Line 7:
 
* [[Programming/GitHub|Use of Github for software control]]
 
* [[Programming/GitHub|Use of Github for software control]]
 
* [http://hpc.wordpress.hull.ac.uk/support/research-software-engineering/ Research software engineering]
 
* [http://hpc.wordpress.hull.ac.uk/support/research-software-engineering/ Research software engineering]
 +
 +
* [[General/Jupyternotebook Using Jupyter notebooks on our HPC]]
  
  

Revision as of 09:51, 4 February 2020

Programming Support


Specialised Programming Areas

Area Description
Deep Learning Deep learning is part of a broader family of machine learning methods based on learning data representations, as opposed to task-specific algorithms.

Programming Languages & Libraries

Package Description
C C is a general-purpose, high-level language that was originally developed by Dennis M. Ritchie to develop the UNIX operating system at Bell Labs.
C++ C++ is a general-purpose programming language. It has imperative, object-oriented and generic programming features, while also providing facilities for low-level memory manipulation.
C-Sharp C# is a multi-paradigm programming language encompassing strong typing, imperative, declarative, functional, generic, object-oriented (class-based), and component-oriented programming. Originally created by Microsoft.
CUDA CUDA is a parallel computing platform and application programming interface (API) model created by Nvidia.
Fortran Fortran is a general-purpose, imperative programming language that is especially suited to numeric computation and scientific computing. FORTRAN was the world's first high-level programming language and was started in 1957.
JAVA Java is a high-level programming language originally developed by Sun Microsystems and released in 1995.
Julia Julia is a high-level, high-performance dynamic programming language for numerical computing. It provides a sophisticated compiler, distributed parallel execution, numerical accuracy, and an extensive mathematical function library.
OpenACC OpenACC is an implementation of multithreading, a method of parallelizing whereby a master thread (a series of instructions executed consecutively) forks a specified number of slave threads and the system divides a task among them. This is similar to OpenMP but has had CPU/GPU support from the beginning. There is language support from C/C++ and Fortran.
OpenCL A framework for writing programs that execute across heterogeneous platforms consisting of central processing units (CPUs), graphics processing units (GPUs), digital signal processors (DSPs), field-programmable gate arrays (FPGAs) and other processors or hardware accelerators.
OpenMP OpenMP is an implementation of multithreading, a method of parallelizing whereby a master thread (a series of instructions executed consecutively) forks a specified number of slave threads and the system divides a task among them. There is language support from C/C++ and Fortran.
OpenMPI MPI stands for the Message Passing Interface. MPI is a standardized API typically used for parallel and/or distributed computing. There is language support from C/C++ and Fortran.
Perl Perl is an interpreted language useful for rapid code development and multi-purpose programming.
Python Python is an interpreted language useful for rapid code development and distributed computing.
R R is a programming language and software environment for statistical analysis, graphics representation and reporting.