https://github.com/donaurelio/coder
the base for a web-based parallel programming environment build over a microservice approach
https://github.com/donaurelio/coder
automatic-parallelization cellular-automata openacc openmp parallel-programming-skeleton parallelism-pattern parallelization programming stencil stencil-template web-api
Last synced: 3 months ago
JSON representation
the base for a web-based parallel programming environment build over a microservice approach
- Host: GitHub
- URL: https://github.com/donaurelio/coder
- Owner: DonAurelio
- Created: 2017-10-14T15:33:08.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2022-12-29T07:03:46.000Z (over 2 years ago)
- Last Synced: 2025-04-12T22:57:13.903Z (3 months ago)
- Topics: automatic-parallelization, cellular-automata, openacc, openmp, parallel-programming-skeleton, parallelism-pattern, parallelization, programming, stencil, stencil-template, web-api
- Language: JavaScript
- Homepage:
- Size: 7.41 MB
- Stars: 2
- Watchers: 1
- Forks: 1
- Open Issues: 15
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Coder: Microservice Based Online Code Editor Initiative to Support Parallel Programming
**Coder** is an initiative for a microservices-based online code editor to assist the development of C scientific applications. Code optimization, automatic parallelizers and code analysis are the target tools to be integrated on this initiative.
This tool allow extensibility by providing these tools as services.## Intructory Videos
* [Introduction](https://www.youtube.com/watch?v=0I5hRkwDllk&t=8s)
* [Demo](https://www.youtube.com/watch?v=ixcd9PUuE3I)## Available Services
The follwoing services were developed to test Coder basic funtionalities. However, it is expected to integrate proper code optimization tools or extend the existing ones.
* Coder: Deals with C code edition, additionally integrate the services which assist the programmer with code optimization and parallelization.
* [Templates](https://github.com/DonAurelio/parallel-templates): Provide C templates to start a parallel programming proyect.
* [Pragcc](https://github.com/DonAurelio/pragcc): Provides an basic parallelization method as a source to source compiler.## Application Diagram

## Deployment
* [Docker Compose](https://github.com/DonAurelio/coder/tree/master/compose)
* [Kubernetes](https://github.com/DonAurelio/coder/tree/master/kubernetes)## Server Endpoints
### Projects
List available projects
`GET http://:/api/project/projects/`
Get project with specific id.
`GET http://:/api/project/projects//`
### Files
List available files
`GET http://:/api/project/files/`
Get files belonging to a project with specific id.
`GET http://:/api/project/files?project=`
### Pragcc Service
The pragcc service perform C99 source code compilation and parallelization with OpenMP or OpenACC Directives.
Compile a file
`POST http://:/api/pragcc/compiler/compile/files/`
Annotate code with OpenMP directives, the file with the given id must be C99 source code.
`POST http://:/api/pragcc/openmp/parallelize/files/`
Annotate code with OpenACC directives, the file with the given id must be C99 source code.
`POST http://:/api/pragcc/openacc/parallelize/files/`
## Further Work
Serveral tools (Parallelizer Compilers, Compiler Directives, Libraries) have been created with the purpose of allowing parallel execution in either CPU or GPU. However, they are not easily accessed by users. This project aims to associate each of them as an application service to assist the parallel programming process.