Difference between revisions of "Programming"

From HPC
Jump to: navigation , search
m
m
(22 intermediate revisions by the same user not shown)
Line 1: Line 1:
== Programming Support ==
 
  
Click on the links below for support on programming packages:
+
==Programming Support==
  
{| class="wikitable"
+
 
| style="width:25%" | <Strong>Package</Strong>
+
* Development software listed here refer to those list in the '''development''' section of typing ''[[General/Modules|module avail]]''.
| style="width:75%" | <Strong>Description</Strong>
+
* [[Programming/Style|Viper programming guidelines and style]]
 +
* [[Programming/GitHub|Use of Github for software control]]
 +
* [http://hpc.wordpress.hull.ac.uk/support/research-software-engineering/ Research software engineering]
 +
 
 +
 
 +
===Specialised Programming Areas===
 +
 
 +
{| class="wikitable mw-collapsible"
 +
| style="width:25%; background: #cccccc;" | <Strong>Area</Strong>
 +
| style="width:75%; background: #cccccc;" | <Strong>Description</Strong>
 +
|-
 +
| [[programming/Deep Learning|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===
 +
 
 +
 
 +
{| class="wikitable mw-collapsible "
 +
| style="width:25%; background: #cccccc;" | <Strong>Package</Strong>
 +
| style="width:75%; background: #cccccc;" | <Strong>Description</Strong>
 
|-
 
|-
 
| [[programming/C|C]]
 
| [[programming/C|C]]
Line 20: Line 40:
 
|-
 
|-
 
| [[programming/Fortran|Fortran]]
 
| [[programming/Fortran|Fortran]]
| Fortran is a general-purpose, imperative programming language that is especially suited to numeric computation and scientific computing.
+
| 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.
 
|-
 
|-
 
| [[programming/Java|JAVA]]
 
| [[programming/Java|JAVA]]
 
| Java is a high-level programming language originally developed by Sun Microsystems and released in 1995.
 
| Java is a high-level programming language originally developed by Sun Microsystems and released in 1995.
 +
|-
 +
| [[programming/Julia|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.
 +
|-
 +
| [[programming/OpenACC|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.
 +
|-
 +
| [[programming/OpenCL|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.
 
|-
 
|-
 
| [[programming/OpenMP|OpenMP]]
 
| [[programming/OpenMP|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.  
+
| 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.
 
|-
 
|-
 
| [[programming/OpenMPI|OpenMPI]]
 
| [[programming/OpenMPI|OpenMPI]]
| MPI stands for the Message Passing Interface. MPI is a standardized API typically used for parallel and/or distributed computing.
+
| 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.
 
|-
 
|-
 
| [[programming/Perl|Perl]]
 
| [[programming/Perl|Perl]]
Line 41: Line 70:
 
|-
 
|-
 
|}
 
|}
 +
 +
  
  
 
* [[Main_Page|Home]]
 
* [[Main_Page|Home]]
 
* [[Applications|Application support]]
 
* [[Applications|Application support]]
 +
* [[Libraries|Library support]]
 +
* [[Programming|Development support]] *
 
* [[General|General]]
 
* [[General|General]]
* [[Training|Training]]
 
* [[Programming|Programming support]]
 

Revision as of 10:34, 24 May 2019

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.