{"id":25406700,"url":"https://github.com/donaurelio/coder","last_synced_at":"2025-04-12T22:57:20.066Z","repository":{"id":27499846,"uuid":"106939435","full_name":"DonAurelio/coder","owner":"DonAurelio","description":"the base for a web-based parallel programming environment build over a microservice approach","archived":false,"fork":false,"pushed_at":"2022-12-29T07:03:46.000Z","size":7772,"stargazers_count":2,"open_issues_count":15,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-12T22:57:13.903Z","etag":null,"topics":["automatic-parallelization","cellular-automata","openacc","openmp","parallel-programming-skeleton","parallelism-pattern","parallelization","programming","stencil","stencil-template","web-api"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/DonAurelio.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-10-14T15:33:08.000Z","updated_at":"2020-01-06T16:49:12.000Z","dependencies_parsed_at":"2023-01-14T06:53:30.610Z","dependency_job_id":null,"html_url":"https://github.com/DonAurelio/coder","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DonAurelio%2Fcoder","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DonAurelio%2Fcoder/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DonAurelio%2Fcoder/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DonAurelio%2Fcoder/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DonAurelio","download_url":"https://codeload.github.com/DonAurelio/coder/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248643038,"owners_count":21138353,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["automatic-parallelization","cellular-automata","openacc","openmp","parallel-programming-skeleton","parallelism-pattern","parallelization","programming","stencil","stencil-template","web-api"],"created_at":"2025-02-16T05:36:57.899Z","updated_at":"2025-04-12T22:57:20.032Z","avatar_url":"https://github.com/DonAurelio.png","language":"JavaScript","readme":"# Coder: Microservice Based Online Code Editor Initiative to Support Parallel Programming\n\n**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.\nThis tool allow extensibility by providing these tools as services.\n\n## Intructory Videos\n\n* [Introduction](https://www.youtube.com/watch?v=0I5hRkwDllk\u0026t=8s)\n* [Demo](https://www.youtube.com/watch?v=ixcd9PUuE3I)\n\n## Available Services\n\nThe follwoing services were developed to test Coder basic funtionalities. However, it is expected to integrate proper code optimization tools or extend the existing ones.\n\n* Coder: Deals with C code edition, additionally integrate the services which assist the programmer with code optimization and parallelization.\n* [Templates](https://github.com/DonAurelio/parallel-templates): Provide C templates to start a parallel programming proyect.\n* [Pragcc](https://github.com/DonAurelio/pragcc): Provides an basic parallelization method as a source to source compiler.\n\n## Application Diagram\n\n![alt text](https://github.com/DonAurelio/coder/blob/master/doc/deploy_diagram.png)\n\n## Deployment\n\n* [Docker Compose](https://github.com/DonAurelio/coder/tree/master/compose) \n* [Kubernetes](https://github.com/DonAurelio/coder/tree/master/kubernetes)\n\n\n## Server Endpoints\n\n### Projects\n\nList available projects\n\n`GET http://\u003cserver-ip\u003e:\u003cserver-port\u003e/api/project/projects/`\n\nGet project with specific id. \n\n`GET http://\u003cserver-ip\u003e:\u003cserver-port\u003e/api/project/projects/\u003cproject-id\u003e/`\n\n### Files\n\nList available files\n\n`GET http://\u003cserver-ip\u003e:\u003cserver-port\u003e/api/project/files/`\n\nGet files belonging to a project with specific id.\n\n`GET http://\u003cserver-ip\u003e:\u003cserver-port\u003e/api/project/files?project=\u003cproject-id\u003e`\n\n### Pragcc Service\n\nThe pragcc service perform C99 source code compilation and parallelization with OpenMP or OpenACC Directives.\n\nCompile a file\n\n`POST http://\u003cserver-ip\u003e:\u003cserver-port\u003e/api/pragcc/compiler/compile/files/\u003cfile-id\u003e`\n\nAnnotate code with OpenMP directives, the file with the given id must be C99 source code.\n\n`POST http://\u003cserver-ip\u003e:\u003cserver-port\u003e/api/pragcc/openmp/parallelize/files/\u003cfile-id\u003e`\n\nAnnotate code with OpenACC directives, the file with the given id must be C99 source code.\n\n`POST http://\u003cserver-ip\u003e:\u003cserver-port\u003e/api/pragcc/openacc/parallelize/files/\u003cfile-id\u003e`\n\n\n## Further Work\n\nServeral 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.\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdonaurelio%2Fcoder","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdonaurelio%2Fcoder","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdonaurelio%2Fcoder/lists"}