This is a list of summer projects for OSS incubators and research
projects affiliated with CROSS. If you have any questions, please visit our Gitter channel:
Popper is a workflow execution engine based on Github
actions (GHA). Popper workflows
are defined in a HCL syntax and
behave like GHA workflows.
|
|
Title |
Popper 2.0 |
Mentor(s) |
Ivo Jimenez |
Skills |
Python (strong), Github Actions and HCL (familiar), Docker (familiar) |
Description |
The goal of this project is to add new features to the workflow execution engine, which is based on Github actions (GHA). Please look at the project link to see a list of associated issues. |
Link |
https://github.com/systemslab/popper/projects/12 |
|
|
Title |
Actions Library |
Mentor(s) |
Ivo Jimenez |
Skills |
Python (strong), Bash (familiar), Docker (familiar) |
Description |
The goal of this project is to create a catalog of re-usable actions used in the creation of experimentation pipelines. For example: a Zenodo action that downloads a dataset to be consumed by a later stage in a pipeline; a Spack action that installs the software stack required for an exploration. This has a list of endless possibilities. |
Link |
https://github.com/systemslab/popper/projects/11 |
|
|
Title |
Example Workflows |
Mentor(s) |
Ivo Jimenez |
Skills |
Python (strong), Bash (familiar), Docker (familiar) |
Description |
The goal of this project is to create example workflows that showcase the distinct actions available for experimenters. This pipelines are relevant in multiple domains such as Genomics, Weather Prediction, Computational (Neuro/Math/etc) Science, among many other domains. |
Link |
https://github.com/systemslab/popper/projects/7 |
|
|
Title |
Popper Pipeline and Stages Viewer |
Mentor(s) |
Ivo Jimenez |
Skills |
GUI development (strong), Javascript (strong) |
Description |
Create a javascript-based viewer of Popper pipelines that allows users to visually explore a pipeline and its contents (similar to Github's built-in workflow editor). As part of this project, a stage catalog will also be implemented, that allows users to search for available stages on Github. |
Link |
https://github.com/systemslab/popper/projects/13 |
|
|
Title |
Extend CI capabilities of CLI tool |
Mentor(s) |
Ivo Jimenez |
Skills |
Python (strong), Bash (familiar), Continuous integration (familiar) |
Description |
Improve continuous integration aspects of the CLI tool. Currently, the popper command provides basic CI functionality via its popper run command, that allows experiment pipelines to be automatically executed on multiple CI services. |
Link |
https://github.com/systemslab/popper/projects/5 |
LGraph (https://github.com/masc-ucsc/lgraph) is the open source infrastructure for Synthesis and Simulation being developed by UCSC. The LGraph goal is to have a common LLVM-like format for synthesis and simulation with a focus on being very fast (Live) and compatible across languages.
|
|
Title |
LGraph and FIRRTL Bidirectional Bridge |
Mentor(s) |
Jose Renau (https://users.soe.ucsc.edu/~renau/) |
Skills |
C++ |
Description |
FIRRTL (https://github.com/freechipsproject/firrtl) is the also open source infrastructure as "a platform for writing circuit-level transformations.". Both FIRRTL and LGraph share many common goals. Creating a bridge between them allows to leverage features only existing in each one. There are many differences, for example LGraph has ABC synthesis integration and FIRRTL has CHISEL support. The goal of this project is to implement at C++17 import/export for LGraph that handles FIRRTL. |
Difficulty |
medium |
|
|
Title |
LGraph LLVM Code Generation |
Mentor(s) |
Jose Renau (https://users.soe.ucsc.edu/~renau/) |
Skills |
C++ |
Description |
LGraph can output Verilog through a Yosys bridge. There is a work-in-progress custom Verilog and Pyrope output for LGraph. The goal of this project is to create an LLVM direct output bridge from LGraph to perform fast hardware simulations. |
Difficulty |
medium |
|
|
Title |
LGraph AWS Integration |
Mentor(s) |
Jose Renau (https://users.soe.ucsc.edu/~renau/) |
Skills |
C++/Verilog |
Description |
The goal of this project is to setup a flow in AWS F1 instances to use LGraph for synthesis. LGraph can read Verilog and synthesize with ABC designs for Xilinx FPGAs. The end goal is to create an open source alternative to the Vivado flow used by AWS F1 instances. Since the open source tools are still not ready to handle place and route in AWS F1, for this project, the place and route will use Vivado, but the tools will be hidden behind LGraph. Future projects could target to replace these missing pieces while having a working system. |
Difficulty |
high |
|
|
Title |
LGraph FPGA NextPnr Integration |
Mentor(s) |
Jose Renau (https://users.soe.ucsc.edu/~renau/) |
Skills |
C++ |
Description |
Nextpnr is the new Open-source FPGA flow that targets Lattice and potentially Xilinx devices. The goal is to interface between LGraph and nextpnr. Creating a bidirectional bridge. The goal is to allow to leverage the incremental synthesis in LGraph, and target FPGAS like Lattice ECP5 and iCE40. |
Difficulty |
medium |
Skyhook extends object storage in the cloud with data management functionality. Skyhook formats database table partitions as Flatbuffers, and stores each partition as an object in Ceph distributed storage. Ceph object classes mechanism allow users to define custom read/write methods for objects. We have developed methods (C++) for data management including data processing and indexing.
|
|
Title |
Database statistics collection on partitioned data |
Mentor(s) |
Jeff LeFevre |
Skills |
C++ |
Description |
This project will develop object-class methods to compute data statistics (histograms) for each object and store them in a query-able format within each storage server’s local RocksDB, then write client code to accumulate all the object-local statistics into global statistics for a given database table. |
Link |
https://github.com/uccross/skyhook-ceph |
Difficulty |
high |
|
|
Title |
Extend current processing methods with column-oriented processing via Arrow |
Mentor(s) |
Jeff LeFevre |
Skills |
C++ |
Description |
This project will develop object-class methods to transform on-disk Flatbuffer data (row oriented) into Apache Arrow format (col-oriented) in memory, then work toward extending our row-oriented filters and aggregations to column oriented versions using the Arrow APIs. |
Link |
https://github.com/uccross/skyhook-ceph |
Difficulty |
high |
|
|
Title |
Extend current aggregations to include sort/groupby for database partitions |
Mentor(s) |
Jeff LeFevre |
Skills |
C++ |
Description |
We have developed methods (C++) for data management including data processing and indexing. This project will develop object-class methods methods to sort/group query result sets. This requires extending the current code (select/project/basic-aggregations - min/max/sum/count) to support groupby and/or orderby. |
Link |
https://github.com/uccross/skyhook-ceph |
Difficulty |
medium |
Two little-languages and libraries for doing text expansion (used in 10,000 twitterbots, plus games and art projects) and state-based chatbots
|
|
Title |
Language and tutorial support for Tracery |
Mentor(s) |
Kate Compton |
Skills |
Javascript (low), Markdown (good), Language fluency and understanding of some non-English culture |
Description |
In my guide to supporting opensource art tools, I argued that art tools need contributors with different languages and cultures to translate the tools to enable access. This project seeks someone with expert fluency in a non-English language to write javascript "modifiers" functions for Tracery, custom to that language. In English Tracery, these are things like pluralizing words or adding "a/an" to a word). I would like to enable this support for some non-English language, as well as get culturally-relevant Tracery/twitterbot tutorials written in that language. |
Link |
https://tracery.io |
|
|
Title |
Pathfinding for Chancery |
Mentor(s) |
Kate Compton |
Skills |
Javascript (high), graph analysis, pathfinding and traversal |
Description |
Chancery is a state-based chatbot language (think Twine, but for the Alexa). Users write state machines that represent conversations or games. This project will build a pathfinding algorithm than can calculate which state exits or states cannot be reached (e.g., requiring 5 gems to move from one state to another, but only 4 gems can be collected). If interested, this project could also include building a visualization of that connectivity map. |
Link |
https://tracery.io/chancery |