A library for parallel programming in Go

Related tags

Miscellaneous pargo
Overview

pargo

A library for parallel programming in Go

Package pargo provides functions and data structures for expressing parallel algorithms. While Go is primarily designed for concurrent programming, it is also usable to some extent for parallel programming, and this library provides convenience functionality to turn otherwise sequential algorithms into parallel algorithms, with the goal to improve performance.

Documentation: http://godoc.org/github.com/ExaScience/pargo and http://github.com/ExaScience/pargo/wiki

You might also like...
The Gorilla Programming Language
The Gorilla Programming Language

Gorilla Programming Language Gorilla is a tiny, dynamically typed, multi-engine programming language It has flexible syntax, a compiler, as well as an

Elastic is an Elasticsearch client for the Go programming language.

Elastic is an Elasticsearch client for the Go programming language.

👩🏼‍💻A simple compiled programming language
👩🏼‍💻A simple compiled programming language

The language is written in Go and the target language is C. The built-in library is written in C too

Welcome to the future of programming languages: OK?
Welcome to the future of programming languages: OK?

OK? Try it out on the playground OK?'s mascot: Quentyn Questionmark. Programming Is Simple Again OK? is a modern, dynamically typed programming langua

Examples on different options for implementing Flow Based Programming

Flow Based Programming This repository contains fragments and ideas related to Flow Based Programming. It shows different ways of implementing differe

Lithia is an experimental functional programming language with an implicit but strong and dynamic type system.

Lithia is an experimental functional programming language with an implicit but strong and dynamic type system. Lithia is designed around a few core concepts in mind all language features contribute to.

accessor methods generator for Go programming language

accessory accessory is an accessor generator for Go programming language. What is accessory? Accessory is a tool that generates accessor methods from

Http web frame with Go Programming Language

Http web frame with Go Programming Language

A modern programming language written in Golang.

MangoScript A modern programming language written in Golang. Here is what I want MangoScript to look like: struct Rectangle { width: number he

Comments
  • Multi-error return

    Multi-error return

    Re: https://github.com/ExaScience/pargo/commit/d3f88e0577949e0a5484b6198909a6630036b73b, I actually wanted to retrieve all errors, rather than just the first; to do this, I was sending the errors through the value path, so i could combine and return them.

    The new error behavior doesn't prevent that, but it kind of makes the code confusing, since all my error cases are basically, return errors.Wrap(err, "meow meow"), nil.

    I think this is in fact a feature request for a better way to handle multi-error return; one way to handle this might be to change the pair signature to

    // let me handle my errors the same way as my values
    pair func(x, y interface{}, xerr, yerr error) (interface{}, error),
    

    or maybe

    // error is whatever i want it to be, the bool determines early-out
    pair func(x, y interface{}, xerr, yerr error) (interface{}, bool, error),
    

    Thanks :)

    opened by novas0x2a 3
  • RangeReduce Error ?

    RangeReduce Error ?

    I think there is an error in the RangeReduce (and friends) code. At line 752 in "parallel.go" it mentions if mid >= half {. I guess that needs to be if mid >= high {. With that change, it does work correct for me. The original code always gives me just 1 slice.

    opened by tilient 1
Owner
null
An easy-to-use Map Reduce Go parallel-computing framework inspired by 2021 6.824 lab1. It supports multiple workers on a single machine right now.

MapReduce This is an easy-to-use Map Reduce Go framework inspired by 2021 6.824 lab1. Feature Multiple workers on single machine right now. Easy to pa

Bo-Wei Chen 196 Nov 14, 2022
A simple package for executing work in parallel up to a limit.

concurrencylimiter A simple package for executing work concurrently - up to a limit. The intended usecase looks something like: func concurrentlyDo(ta

Edward Stell 0 Dec 19, 2021
Advent of Code is an Advent calendar of small programming puzzles for a variety of skill sets and skill levels that can be solved in any programming language you like.

Advent of Code 2021 Advent of Code is an Advent calendar of small programming puzzles for a variety of skill sets and skill levels that can be solved

Kemal Ogun Isik 0 Dec 2, 2021
Zach Howell 0 Jan 4, 2022
Functional programming library for Go including a lazy list implementation and some of the most usual functions.

functional A functional programming library including a lazy list implementation and some of the most usual functions. import FP "github.com/tcard/fun

Toni Cárdenas 31 May 21, 2022
FreeSWITCH Event Socket library for the Go programming language.

eventsocket FreeSWITCH Event Socket library for the Go programming language. It supports both inbound and outbound event socket connections, acting ei

Alexandre Fiori 109 Oct 25, 2022
Flow-based and dataflow programming library for Go (golang)

GoFlow - Dataflow and Flow-based programming library for Go (golang) Status of this branch (WIP) Warning: you are currently on v1 branch of GoFlow. v1

Vladimir Sibirov 1.5k Nov 15, 2022
Go library for hardware I/O control, in the programming style of Arduino

hwio Introduction hwio is a Go library for interfacing with hardware I/O, particularly on SoC-based boards such as BeagleBone Black, Raspberry Pi and

Mark Stephens 323 Aug 7, 2022
Unit tests generator for Go programming language

GoUnit GoUnit is a commandline tool that generates tests stubs based on source function or method signature. There are plugins for Vim Emacs Atom Subl

Max Chechel 64 Sep 27, 2022
Simple interface to libmagic for Go Programming Language

File Magic in Go Introduction Provides simple interface to libmagic for Go Programming Language. Table of Contents Contributing Versioning Author Copy

Krzysztof Wilczyński 12 Dec 22, 2021