Difference between revisions of "GPU621/Go Parallel"

From CDOT Wiki
Jump to: navigation, search
(What is Go?)
Line 5: Line 5:
  
 
== What is Go? ==
 
== What is Go? ==
As explained in the Go official documentation "Go is an open source programming language that makes it easy to build simple, reliable, and efficient software". Created on a whiteboard in 2007 which later became open source in 2009. Go is the collaboration of many different programmers that were tired of the choices that they had to make between languages. Either they chose efficient compilation, efficient execution, or ease of programming; no mainstream languages had all three of these characteristics. Thus Go was created, a language that would combine all three of these characteristics into one. A main point brought up in Go's Creations was "It must be modern. C, C++, and to some extent Java are quite old, designed before the advent of '''multicore''' machines, networking, and web application development. There are features of the modern world that are better met by newer approaches, such as built-in concurrency" which means that at its core, Go supports multicore parallel programming.
+
As explained in the Go official website "Go is an open source programming language that makes it easy to build simple, reliable, and efficient software"[https://golang.org/]. Created on a whiteboard in 2007 which later became open source in 2009. Go is the collaboration of many different programmers that were tired of the choices that they had to make between languages. Either they chose efficient compilation, efficient execution, or ease of programming; no mainstream languages had all three of these characteristics. Thus Go was created, a language that would combine all three of these characteristics into one. A main point brought up in Go's Creations was "It must be modern. C, C++, and to some extent Java are quite old, designed before the advent of '''multicore''' machines, networking, and web application development. There are features of the modern world that are better met by newer approaches, such as built-in concurrency"[https://talks.golang.org/2012/splash.article] which means that at its core, Go supports multicore parallel programming.
  
 
=== Installation ===
 
=== Installation ===

Revision as of 19:15, 19 November 2020


GPU621/DPS921 | Participants | Groups and Projects | Resources | Glossary

Go (Language) Parallel Programming

Description

Our team wants to demonstrate the usefulness of the Go programming language while applying Parallel programming principles. Demonstrations of the difference in time, syntax, and ease of use will be included within the document. The topic of whether using a newly created language like Go compared to an older language like C++ will make a difference in terms of future popularity will also be a key point in our report. Success for this project means displaying the differences between the two languages and educating other students about the possibility to use different languages to do parallel programming

What is Go?

As explained in the Go official website "Go is an open source programming language that makes it easy to build simple, reliable, and efficient software"[1]. Created on a whiteboard in 2007 which later became open source in 2009. Go is the collaboration of many different programmers that were tired of the choices that they had to make between languages. Either they chose efficient compilation, efficient execution, or ease of programming; no mainstream languages had all three of these characteristics. Thus Go was created, a language that would combine all three of these characteristics into one. A main point brought up in Go's Creations was "It must be modern. C, C++, and to some extent Java are quite old, designed before the advent of multicore machines, networking, and web application development. There are features of the modern world that are better met by newer approaches, such as built-in concurrency"[2] which means that at its core, Go supports multicore parallel programming.

Installation

Concurrency

Parallelism

Differences

Code Differences

Time Differences

Ease of Use

Relevance

Future

Present

Pros and Cons

Pros over CPP

Cons over CPP

Why should you Go Parallel?

Group Members

1. Michael Brackett

2. Devansh Shah

Progress

Update 1: Sunday, Nov 8, 2020 - Created description for project.

References

https://golang.org/doc/faq#history

https://software.intel.com/content/www/us/en/develop/blogs/go-parallel.html

https://talks.golang.org/2012/splash.article