<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Projects | UCSC OSPO</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/</link><atom:link href="https://deploy-preview-1007--ucsc-ospo.netlify.app/project/index.xml" rel="self" type="application/rss+xml"/><description>Projects</description><generator>Wowchemy (https://wowchemy.com)</generator><language>en-us</language><image><url>https://deploy-preview-1007--ucsc-ospo.netlify.app/media/logo_hub6795c39d7c5d58c9535d13299c9651f_74810_300x300_fit_lanczos_3.png</url><title>Projects</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/</link></image><item><title>NETAI: AI-Powered Network Anomaly Detection and Diagnostics Platform</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre26/ucsd/netai/</link><pubDate>Thu, 05 Feb 2026 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre26/ucsd/netai/</guid><description>&lt;p>NETAI (Network AI) is an AI-powered network anomaly detection and diagnostics platform for the National Research Platform (NRP). This project combines Kubernetes-native LLM integration, network performance monitoring, and predictive analytics to create an intelligent assistant for network operators. Students will work with cutting-edge technologies including Large Language Models (LLMs), Kubernetes, perfSONAR network measurements, time-series analysis, and containerized AI/ML workloads, while contributing to real-world applications in network operations and diagnostics.&lt;/p>
&lt;p>The project involves developing a &lt;strong>Kubernetes chatbot&lt;/strong> that leverages NRP&amp;rsquo;s managed LLM service (providing access to models like Qwen3-VL, GLM-4.7, and GPT-OSS) to help network operators understand complex network behaviors, diagnose anomalies, and receive natural language explanations of network issues. Students will integrate perfSONAR measurement data with traceroute path analysis to create an interactive network topology visualization, and develop &lt;strong>AI/ML models&lt;/strong> for predictive network performance analysis using NRP&amp;rsquo;s GPU resources.&lt;/p>
&lt;p>In addition, students will gain hands-on experience with &lt;strong>fine-tuning LLMs&lt;/strong> on historical network diagnostics data, developing &lt;strong>time-series forecasting models&lt;/strong> for network metrics, and implementing &lt;strong>anomaly detection&lt;/strong> using deep learning techniques. The entire AI/ML pipeline will be containerized and deployed as Kubernetes workloads, utilizing GPU-enabled pods for model training and inference, ensuring scalability and seamless integration with existing NRP infrastructure.&lt;/p>
&lt;p>The platform builds upon existing network diagnostics capabilities, combining end-to-end throughput measurements with detailed traceroute data to enable operators to visualize network paths, identify performance bottlenecks, and understand relationships between metrics and underlying infrastructure. The AI enhancement will provide predictive capabilities, automated incident reporting, and intelligent recommendations for network remediation strategies.&lt;/p>
&lt;h3 id="netai--llm-integration--kubernetes-chatbot">NETAI / LLM Integration &amp;amp; Kubernetes Chatbot&lt;/h3>
&lt;p>The proposed work includes developing a &lt;strong>Kubernetes-native chatbot&lt;/strong> that integrates with NRP&amp;rsquo;s managed LLM service to provide intelligent network diagnostics assistance. Students will create a conversational interface that can answer questions about network performance, explain anomalies in natural language, and suggest remediation strategies. They will fine-tune LLMs on historical network diagnostics data, test results, and traceroute information to create domain-specific assistants. Students will implement &lt;strong>RESTful APIs&lt;/strong> for chatbot interactions, develop &lt;strong>prompt engineering&lt;/strong> strategies for network diagnostics, and create &lt;strong>context-aware responses&lt;/strong> that incorporate real-time network telemetry. The chatbot will be deployed as Kubernetes services, utilizing GPU pods for inference and integrating with the existing diagnostics platform.&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> Large Language Models, Kubernetes, Chatbots, Natural Language Processing, Network Diagnostics, API Development&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> Python, Kubernetes, LLM APIs (Qwen3-VL, GLM-4.7, GPT-OSS), Prompt Engineering, REST APIs, Docker, GPU Computing&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Hard&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/dmitry-mishin/">Dmitry Mishin&lt;/a>, &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/derek-weitzel/">Derek Weitzel&lt;/a>&lt;/li>
&lt;/ul>
&lt;h3 id="netai--network-anomaly-detection-models">NETAI / Network Anomaly Detection Models&lt;/h3>
&lt;p>The proposed work includes developing &lt;strong>deep learning models&lt;/strong> for network anomaly detection using historical perfSONAR and traceroute data. Students will create models that can identify slow links, high packet loss, excessive retransmits, and failed network tests automatically. They will implement &lt;strong>anomaly detection algorithms&lt;/strong> using techniques such as autoencoders, LSTM networks, and transformer architectures. Students will train models on NRP&amp;rsquo;s GPU clusters using historical network telemetry stored in SQLite databases, develop &lt;strong>feature engineering&lt;/strong> pipelines for network metrics, and create &lt;strong>real-time inference services&lt;/strong> deployed as Kubernetes workloads. The models will be integrated into the diagnostics platform to provide automated anomaly detection alongside the interactive visualization.&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> Deep Learning, Anomaly Detection, Time-Series Analysis, Network Monitoring, Model Training, GPU Computing&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> Python, PyTorch/TensorFlow, scikit-learn, Pandas, NumPy, SQLite, Kubernetes, GPU Pods, MLOps&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Hard&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/dmitry-mishin/">Dmitry Mishin&lt;/a>, &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/derek-weitzel/">Derek Weitzel&lt;/a>&lt;/li>
&lt;/ul>
&lt;h3 id="netai--predictive-analytics--forecasting">NETAI / Predictive Analytics &amp;amp; Forecasting&lt;/h3>
&lt;p>The proposed work includes developing &lt;strong>predictive models&lt;/strong> that can forecast network performance degradation and identify patterns in network anomalies before they impact users. Students will create &lt;strong>time-series forecasting models&lt;/strong> for network metrics such as throughput, latency, and packet loss, using techniques like ARIMA, Prophet, and deep learning-based forecasting. They will implement &lt;strong>few-shot learning approaches&lt;/strong> to adapt models to new network topologies and measurement patterns, develop &lt;strong>early warning systems&lt;/strong> for potential network issues, and create &lt;strong>automated incident report generation&lt;/strong> using LLMs. Students will leverage NRP&amp;rsquo;s GPU resources for training forecasting models and deploy them as Kubernetes services for real-time predictions integrated with the diagnostics dashboard.&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> Time-Series Forecasting, Predictive Analytics, Machine Learning, Network Performance, Early Warning Systems, LLM Integration&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> Python, PyTorch/TensorFlow, Prophet, ARIMA, Pandas, NumPy, Time-Series Analysis, Kubernetes, GPU Computing&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Hard&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/dmitry-mishin/">Dmitry Mishin&lt;/a>, &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/derek-weitzel/">Derek Weitzel&lt;/a>&lt;/li>
&lt;/ul>
&lt;h3 id="netai--kubernetes-deployment--infrastructure">NETAI / Kubernetes Deployment &amp;amp; Infrastructure&lt;/h3>
&lt;p>The proposed work includes setting up &lt;strong>Kubernetes-based infrastructure&lt;/strong> for deploying the entire NETAI platform, including LLM services, ML models, and the diagnostics dashboard. Students will create &lt;strong>Helm charts&lt;/strong> for deploying containerized AI/ML workloads, configure &lt;strong>GPU-enabled pods&lt;/strong> for model training and inference, and implement &lt;strong>persistent storage&lt;/strong> solutions for maintaining historical network telemetry. They will develop &lt;strong>GitLab CI/CD pipelines&lt;/strong> for automated testing and deployment, set up &lt;strong>monitoring and observability&lt;/strong> using Prometheus and Grafana for tracking model performance and resource usage, and create &lt;strong>scalable deployment strategies&lt;/strong> that leverage NRP&amp;rsquo;s distributed computing resources. Students will also integrate the platform with existing perfSONAR infrastructure and ensure seamless operation within the NRP cluster.&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> Kubernetes, DevOps, CI/CD, GPU Computing, Container Orchestration, Infrastructure as Code, Monitoring&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> Kubernetes, Helm, GitLab CI/CD, Prometheus, Grafana, Docker, GPU Pods, Persistent Storage, Infrastructure Automation&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Medium to Hard&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/dmitry-mishin/">Dmitry Mishin&lt;/a>, &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/derek-weitzel/">Derek Weitzel&lt;/a>&lt;/li>
&lt;/ul>
&lt;h2 id="project-resources">Project Resources&lt;/h2>
&lt;ul>
&lt;li>&lt;strong>National Research Platform&lt;/strong>: &lt;a href="https://nrp.ai/" target="_blank" rel="noopener">https://nrp.ai/&lt;/a>&lt;/li>
&lt;li>&lt;strong>NRP LLM Service&lt;/strong>: &lt;a href="https://nrp.ai/documentation/userdocs/ai/llm-managed/" target="_blank" rel="noopener">https://nrp.ai/documentation/userdocs/ai/llm-managed/&lt;/a>&lt;/li>
&lt;li>&lt;strong>perfSONAR&lt;/strong>: &lt;a href="https://www.perfsonar.net/" target="_blank" rel="noopener">https://www.perfsonar.net/&lt;/a>&lt;/li>
&lt;li>&lt;strong>MaDDash&lt;/strong>: &lt;a href="https://github.com/esnet/maddash" target="_blank" rel="noopener">https://github.com/esnet/maddash&lt;/a>&lt;/li>
&lt;li>&lt;strong>Network Monitoring Documentation&lt;/strong>: &lt;a href="https://nrp.ai/documentation/" target="_blank" rel="noopener">https://nrp.ai/documentation/&lt;/a>&lt;/li>
&lt;/ul>
&lt;h2 id="background">Background&lt;/h2>
&lt;p>This project addresses critical gaps in network performance monitoring for the National Research Platform by integrating AI/ML capabilities with existing perfSONAR-based diagnostics. The platform combines end-to-end network measurements with detailed path-level analysis, enhanced by intelligent AI assistants that can help operators understand complex network behaviors and predict potential issues. By leveraging NRP&amp;rsquo;s managed LLM service and GPU resources, students will create a Kubernetes-native system that scales across the distributed research network infrastructure, providing both real-time diagnostics and predictive analytics to improve network reliability and performance for researchers nationwide.&lt;/p></description></item><item><title>VINE: Precision Agriculture Data Platform &amp; Digital Twin</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre26/ucsd/vine/</link><pubDate>Thu, 05 Feb 2026 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre26/ucsd/vine/</guid><description>&lt;p>VINE (Vineyard Intelligence Network &amp;amp; Environment) is an AI/ML research project focused on precision agriculture using the &lt;strong>National Research Platform (NRP)&lt;/strong>. This project leverages the innovative demonstration at Iron Horse Vineyards to study how AI and machine learning can optimize agricultural practices through data-driven insights. Students will work with cutting-edge AI/ML technologies, distributed computing on NRP, and large-scale data analysis, while contributing to real-world applications in sustainable agriculture and climate adaptation.&lt;/p>
&lt;p>The project involves &lt;strong>AI/ML research&lt;/strong> using agricultural data from Iron Horse Vineyards, leveraging the computational resources of the &lt;strong>National Research Platform&lt;/strong> for training and deploying machine learning models. Students will work with agricultural datasets including sensor data, multi-spectral drone imagery, and historical records, developing models for predictive analytics, computer vision, and time-series forecasting. The integration of &lt;strong>NRP&amp;rsquo;s distributed infrastructure&lt;/strong> enables scalable AI research that can process large volumes of sensor data, multi-spectral imagery, and historical agricultural records.&lt;/p>
&lt;p>Students will gain hands-on experience with &lt;strong>AI/ML model development&lt;/strong> for agricultural applications, learning how to analyze multi-spectral drone imagery, process time-series sensor data, and build predictive models for irrigation scheduling, pest detection, and harvest timing. They will deploy and train models on &lt;strong>NRP&amp;rsquo;s Kubernetes clusters&lt;/strong>, utilize &lt;strong>GPU resources&lt;/strong> for deep learning workloads, and work with agricultural datasets for comprehensive research. The project emphasizes using &lt;strong>distributed computing&lt;/strong> on NRP to scale AI/ML experiments and create open, shareable datasets for collaborative research.&lt;/p>
&lt;p>The platform builds upon the success demonstrated at Iron Horse Vineyards, where AI-driven analytics have shown potential for &lt;strong>10% water use reduction&lt;/strong> and improved yield optimization. This project aims to advance AI/ML research in precision agriculture by utilizing NRP&amp;rsquo;s computational capabilities, creating reproducible research that can benefit the broader agricultural and research communities.&lt;/p>
&lt;h3 id="vine--data-pipeline--integration">VINE / Data Pipeline &amp;amp; Integration&lt;/h3>
&lt;p>The proposed work includes building &lt;strong>data pipelines&lt;/strong> to ingest, process, and prepare agricultural data from Iron Horse Vineyards and other sources for AI/ML research. Students will develop pipelines to collect sensor data (soil moisture, temperature, CO2, weather), multi-spectral drone imagery, and historical agricultural records. They will create &lt;strong>data validation and quality assurance&lt;/strong> processes, implement &lt;strong>data preprocessing&lt;/strong> for ML model training, and develop &lt;strong>data integration&lt;/strong> workflows that connect agricultural datasets with NRP computational resources. Students will also work on &lt;strong>data sharing&lt;/strong> mechanisms to make processed datasets available for the research community.&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> Data Engineering, Time-Series Data, Data Preprocessing, Data Sharing, ML Data Pipelines&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> Python, Pandas, NumPy, Data Validation, REST APIs, Docker, Kubernetes, Data Processing&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Medium to Hard&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/mohammad-firas-sada/">Mohammad Firas Sada&lt;/a>&lt;/li>
&lt;/ul>
&lt;h3 id="vine--aiml-models-for-agricultural-analytics-on-nrp">VINE / AI/ML Models for Agricultural Analytics on NRP&lt;/h3>
&lt;p>The proposed work includes developing and training &lt;strong>machine learning models&lt;/strong> for agricultural applications using the &lt;strong>National Research Platform (NRP)&lt;/strong>. Students will create models for &lt;strong>predictive irrigation scheduling&lt;/strong> based on soil moisture, weather forecasts, and historical data. They will develop &lt;strong>computer vision models&lt;/strong> for analyzing multi-spectral drone imagery to detect plant health, identify pests, and estimate yield. Students will also work on &lt;strong>time-series forecasting&lt;/strong> models for predicting harvest timing and optimizing resource allocation. The project will involve training models on &lt;strong>NRP&amp;rsquo;s GPU clusters&lt;/strong>, utilizing distributed training capabilities, and deploying models for real-time inference. Students will leverage agricultural datasets for training and validation, and contribute model outputs and insights for the research community.&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> Machine Learning, Computer Vision, Time-Series Analysis, Predictive Analytics, Agricultural AI, Distributed Training&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> Python, PyTorch/TensorFlow, scikit-learn, OpenCV, Pandas, NumPy, MLOps, NRP Kubernetes, GPU Computing&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Hard&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/mohammad-firas-sada/">Mohammad Firas Sada&lt;/a>&lt;/li>
&lt;/ul>
&lt;h3 id="vine--digital-twin--ai-driven-visualization">VINE / Digital Twin &amp;amp; AI-Driven Visualization&lt;/h3>
&lt;p>The proposed work includes creating &lt;strong>AI-enhanced digital twin&lt;/strong> systems for agricultural sites using computational resources on NRP. Students will develop &lt;strong>3D visualization&lt;/strong> systems (potentially using Omniverse or similar platforms) to represent vineyards and farms, integrate &lt;strong>AI model predictions&lt;/strong> into the digital twin for real-time insights, and create &lt;strong>interactive dashboards&lt;/strong> for monitoring and analysis. They will implement &lt;strong>spatial data processing&lt;/strong> using ML models to map sensor locations and readings to geographic coordinates, and develop &lt;strong>AI-driven simulation capabilities&lt;/strong> for testing different agricultural strategies (irrigation patterns, planting layouts, etc.) before implementation. Students will deploy visualization services on &lt;strong>NRP infrastructure&lt;/strong> and integrate with agricultural data sources for real-time updates.&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> Digital Twin, AI-Enhanced Visualization, GIS, Spatial Data, ML-Driven Simulation, Real-Time Systems&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> Python, 3D Graphics (Omniverse/Unity/Blender), GIS tools, WebGL, React/Three.js, ML Integration, NRP Deployment&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Hard&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/mohammad-firas-sada/">Mohammad Firas Sada&lt;/a>&lt;/li>
&lt;/ul>
&lt;h3 id="vine--web-dashboard--nrp-integration-platform">VINE / Web Dashboard &amp;amp; NRP Integration Platform&lt;/h3>
&lt;p>The proposed work includes building a &lt;strong>comprehensive web dashboard&lt;/strong> for visualizing agricultural data, AI model predictions, and research insights. Students will develop a &lt;strong>full-stack web application&lt;/strong> using modern frameworks (React, Flask/FastAPI) deployed on the &lt;strong>National Research Platform (NRP)&lt;/strong>. The dashboard will display real-time sensor readings, historical trends from agricultural datasets, AI model predictions, and digital twin visualizations. Students will create &lt;strong>API endpoints&lt;/strong> that integrate with &lt;strong>NRP computational resources&lt;/strong> and agricultural data sources, implement &lt;strong>role-based access control&lt;/strong> for researchers, and enable &lt;strong>data export/sharing&lt;/strong> with the broader research community. The platform will support &lt;strong>interactive data exploration&lt;/strong> tools and provide programmatic access to AI/ML models running on NRP.&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> Full-Stack Web Development, Data Visualization, API Development, NRP Deployment, ML Model Serving&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> React, Flask/FastAPI, PostgreSQL, D3.js/Plotly, Bootstrap/Tailwind CSS, REST APIs, Kubernetes, NRP APIs&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Medium to Hard&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/mohammad-firas-sada/">Mohammad Firas Sada&lt;/a>&lt;/li>
&lt;/ul>
&lt;h2 id="project-resources">Project Resources&lt;/h2>
&lt;ul>
&lt;li>&lt;strong>National Research Platform&lt;/strong>: &lt;a href="https://nrp.ai/" target="_blank" rel="noopener">https://nrp.ai/&lt;/a>&lt;/li>
&lt;li>&lt;strong>Iron Horse Vineyards Project&lt;/strong>: &lt;a href="https://gitlab.nrp-nautilus.io/ihv" target="_blank" rel="noopener">https://gitlab.nrp-nautilus.io/ihv&lt;/a>&lt;/li>
&lt;li>&lt;strong>Omniverse Integration&lt;/strong>: &lt;a href="https://gitlab.nrp-nautilus.io/omniverse" target="_blank" rel="noopener">https://gitlab.nrp-nautilus.io/omniverse&lt;/a>&lt;/li>
&lt;li>&lt;strong>CENIC Network&lt;/strong>: &lt;a href="https://cenic.org/" target="_blank" rel="noopener">https://cenic.org/&lt;/a>&lt;/li>
&lt;li>&lt;strong>CENIC Precision Agriculture Blog&lt;/strong>: &lt;a href="https://nrp.ai/cenic-precision-agriculture-2025" target="_blank" rel="noopener">https://nrp.ai/cenic-precision-agriculture-2025&lt;/a>&lt;/li>
&lt;/ul>
&lt;h2 id="background">Background&lt;/h2>
&lt;p>This project builds upon the successful demonstration at Iron Horse Vineyards, where CENIC, UC San Diego, and partners have created a living laboratory for precision agriculture. The VINE project focuses on &lt;strong>AI/ML research&lt;/strong> using the &lt;strong>National Research Platform (NRP)&lt;/strong> for computational resources. By leveraging NRP&amp;rsquo;s distributed infrastructure and GPU clusters, students can train and deploy sophisticated ML models for agricultural applications. The project works with agricultural datasets from Iron Horse Vineyards and aims to create open, shareable datasets for the research community. This approach creates a scalable, reproducible framework for AI/ML research in precision agriculture that can benefit researchers, educators, and practitioners nationwide.&lt;/p></description></item><item><title>Reconfigurable and Placement-Aware Replication for Edge Systems</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre26/umass/edge-replication/</link><pubDate>Sat, 31 Jan 2026 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre26/umass/edge-replication/</guid><description>&lt;h2 id="project-description">Project Description&lt;/h2>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: Distributed systems&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: Rust, Java, Go, Python, Bash scripting, Linux, Docker.&lt;/li>
&lt;li>&lt;strong>Difficulty&lt;/strong>: Hard&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong>: Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors&lt;/strong>: &lt;a href="mailto:fikurnia@cs.umass.edu">Fadhil I. Kurnia&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Modern replicated systems are typically evaluated under static configurations with fixed replica placement. However, real-world edge deployments are highly dynamic: workloads shift geographically, edge nodes join or fail, and latency conditions change over time. Our existing testbed provides reproducible evaluation for replicated systems but lacks support for dynamic reconfiguration and adaptive edge placement policies.&lt;/p>
&lt;p>This project extends the existing open testbed to support:&lt;/p>
&lt;ol>
&lt;li>
&lt;p>Dynamic Replica Reconfiguration&lt;/p>
&lt;ul>
&lt;li>Membership changes (add/remove replicas)&lt;/li>
&lt;li>Leader migration and shard movement&lt;/li>
&lt;li>Online reconfiguration cost measurement (latency spikes, recovery overhead, state transfer cost)&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;p>Edge-Aware Placement Policies&lt;/p>
&lt;ul>
&lt;li>Demand-aware placement based on geographic workload skew&lt;/li>
&lt;li>Latency-aware and bandwidth-aware replica selection&lt;/li>
&lt;li>Comparison of static vs. adaptive placement strategies&lt;/li>
&lt;li>Evaluation under real-world latency matrices (e.g., US metro-level or cloud region traces)&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;p>What-if Simulation Framework&lt;/p>
&lt;ul>
&lt;li>Replay workload traces with time-varying demand&lt;/li>
&lt;li>Simulate hundreds of edge sites with realistic network conditions&lt;/li>
&lt;li>Quantify trade-offs between consistency, availability, reconfiguration overhead, and cost&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ol>
&lt;p>The outcome will be an &lt;a href="https://distrobench.org" target="_blank" rel="noopener">open-source framework&lt;/a> that enables researchers to evaluate not only steady-state replication performance, but also how systems behave under churn, scaling events, and demand shifts. They are central challenges in real edge environments.&lt;/p>
&lt;h3 id="expected-deliverables">Expected Deliverables&lt;/h3>
&lt;ul>
&lt;li>Reconfiguration abstraction layer (API for membership &amp;amp; placement changes)&lt;/li>
&lt;li>Placement policy plugin framework (k-means, facility-location heuristics, latency-minimizing, cost-aware)&lt;/li>
&lt;li>Trace-driven dynamic workload engine&lt;/li>
&lt;li>Public benchmark scenarios and reproducible experiment scripts&lt;/li>
&lt;li>Artifact-ready documentation and evaluation report&lt;/li>
&lt;/ul></description></item><item><title>AI Data Readiness Inspector (AIDRIN)</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre26/lbl/aidrin/</link><pubDate>Fri, 30 Jan 2026 10:15:00 -0700</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre26/lbl/aidrin/</guid><description>&lt;p>Garbage In, Garbage Out (GIGO) is a widely accepted quote in computer science across various domains, including Artificial Intelligence (AI). As data is the fuel for AI, models trained on low-quality, biased data are often ineffective. Computer scientists who use AI invest considerable time and effort in preparing the data for AI.&lt;/p>
&lt;p>&lt;a href="https://arxiv.org/pdf/2406.19256" target="_blank" rel="noopener">AIDRIN&lt;/a> (AI Data Readiness INspector) is a framework that provides a quantifiable assessment of data readiness for AI processes, covering a broad range of dimensions from the literature. AIDRIN uses metrics from traditional data quality assessment, such as completeness, outliers, and duplicates, to evaluate data. Furthermore, AIDRIN uses metrics specific to assessing AI data, such as feature importance, feature correlations, class imbalance, fairness, privacy, and compliance with the FAIR (Findability, Accessibility, Interoperability, and Reusability) principles. AIDRIN provides visualizations and reports to assist data scientists in further investigating data readiness.&lt;/p>
&lt;h3 id="aidrin-multiple-file-formats">AIDRIN Multiple File Formats&lt;/h3>
&lt;p>The proposed work will include improvements in the AIDRIN framework to (1) add support for new file formats such as Zarr, ROOT, and HDF5; and (2) to allow providing custom data ingestion mechanisms.&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> &lt;code>data readiness&lt;/code>, &lt;code>AI&lt;/code>, &lt;code>data analysis&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> Python, C/C++, data analysis, good communicator&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Moderate&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/jean-luca-bez/">Jean Luca Bez&lt;/a> and &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/suren-byna/">Suren Byna&lt;/a>&lt;/li>
&lt;/ul></description></item><item><title>Drishti</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre26/lbl/drishti/</link><pubDate>Fri, 30 Jan 2026 10:15:00 -0700</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre26/lbl/drishti/</guid><description>&lt;p>&lt;a href="https://github.com/hpc-io/drishti" target="_blank" rel="noopener">Drishti&lt;/a> is a novel interactive web-based analysis framework to visualize I/O traces, highlight bottlenecks, and help understand the I/O behavior of scientific applications. Drishti aims to fill the gap between the trace collection, analysis, and tuning phases. The framework contains an interactive I/O trace analysis component for end-users to visually inspect their applications&amp;rsquo; I/O behavior, focusing on areas of interest and getting a clear picture of common root causes of I/O performance bottlenecks. Based on the automatic detection of I/O performance bottlenecks, our framework maps numerous common and well-known bottlenecks and their solution recommendations that can be implemented by users.&lt;/p>
&lt;h3 id="drishti-comparisons-and-heatmaps">Drishti Comparisons and Heatmaps&lt;/h3>
&lt;p>The proposed work will include investigating and building a solution to allow comparing and finding differences between two I/O trace files (similar to a &lt;code>diff&lt;/code>), covering the analysis and visualization components. It will also explore additional metrics and counters such as Darshan heatmaps in the analysis and visualization components of the framework.&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> &lt;code>I/O&lt;/code>, &lt;code>HPC&lt;/code>, &lt;code>data analysis&lt;/code>, &lt;code>visualization&lt;/code>, &lt;code>profiling&lt;/code>, &lt;code>tracing&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> Python, data analysis, performance profiling&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Moderate&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/jean-luca-bez/">Jean Luca Bez&lt;/a> and &lt;a href="mailto:sbyna@lbl.gov">Suren Byna&lt;/a>&lt;/li>
&lt;/ul></description></item><item><title>EnergyAPI: An End-to-End API for Energy-Aware Forecasting and Scheduling</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre26/ucsc/energy-api/</link><pubDate>Fri, 30 Jan 2026 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre26/ucsc/energy-api/</guid><description>&lt;p>Over the past decades, electricity demand has increased steadily, driven by structural shifts such as the electrification of transportation and, more recently, the rapid expansion of artificial intelligence (AI). Power grids have responded by expanding generation capacity, integrating renewable energy sources such as solar and wind, and deploying demand-response mechanisms. However, the current pace of demand growth is increasingly outstripping grid expansion, leading to integration delays, greater reliance on behind-the-meter consumption, and rising operational complexity.&lt;/p>
&lt;p>To mitigate the environmental and socioeconomic impacts of electricity consumption, large consumers such as cloud data centers and electric vehicle (EV) charging infrastructures are increasingly participating in demand-response programs. These programs provide consumers with grid signals indicating favorable periods for electricity usage, such as when energy is cheapest or has the lowest carbon intensity. Consumers can then shift workloads across time and location to better align with grid conditions and their own operational constraints. A key challenge, however, is the online nature of this problem: operators must make real-time decisions without full knowledge of future grid conditions. While forecasting and optimization techniques exist, their effectiveness depends heavily on workload characteristics, such as whether tasks are delay-tolerant cloud jobs or EV charging sessions with route and deadline constraints.&lt;/p>
&lt;p>This project proposes the design and implementation of a modular, extensible API for energy-aware workload scheduling. The API will ingest grid signals alongside workload Service Level Objectives (SLOs) and operational requirements, and produce execution plans that adapt to changing grid conditions. It will support multiple pluggable scheduling strategies and heuristics, enabling developers to compare real-time and forecast-based approaches across different workload classes. By providing a reusable, open-source interface for demand-response-aware scheduling, this project aims to lower the barrier for developers to integrate energy-aware decision-making into distributed systems and applications.&lt;/p>
&lt;h3 id="building-an-end-to-end-service-for-energy-forecasting-and-scheduling">Building an End-to-End Service for Energy Forecasting and Scheduling&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> &lt;code>Databases&lt;/code> &lt;code>Machine Learning&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> Python, command line tools (bash), SQL (MySQL or SQLite), FastAPI, time-series analysis, basic machine learning&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Moderate&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/abel-souza/">Abel Souza&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Develop a containerized, end-to-end platform consisting of a backend, API, and web-based frontend for collecting, estimating, and visualizing real-time and forecasted electrical grid signals. These signals include electricity demand, prices, energy production, grid saturation, and carbon intensity. The system will support scalable data ingestion, region-specific forecasting models, and interactive visualizations to enable energy-aware application development and analysis.&lt;/p>
&lt;p>Tasks:&lt;/p>
&lt;ul>
&lt;li>Study electrical grid signals and demand-response data sources (e.g., demand, price, carbon intensity, grid saturation) and identify their requirements for real-time and forecast-based consumption planning.&lt;/li>
&lt;li>Design and implement a relational data model for storing historical, real-time, and forecasted grid signals.&lt;/li>
&lt;li>Ingest and validate grid signal data into a MySQL or SQLite database, ensuring data quality and time alignment across regions.&lt;/li>
&lt;li>Implement baseline time-series forecasting models for grid signals (e.g., demand, price, or carbon intensity), with support for region-specific configurations.&lt;/li>
&lt;li>Query European Network of Transmission System Operators for Electricity (ENTSO-E) and EIA (Energy Information Administration (EIA)) APIs to collect grid data.&lt;/li>
&lt;li>Develop a RESTful API that exposes both raw and forecasted grid signals for use by energy-aware applications and schedulers.&lt;/li>
&lt;li>Build a web-based user interface to visualize historical trends, forecasts, and regional differences in grid conditions.&lt;/li>
&lt;li>Implement an interactive choropleth map to display spatial variations in grid signals such as carbon intensity and electricity prices.&lt;/li>
&lt;li>Design an extensible architecture that allows different regions to plug in custom forecasting models or heuristics.&lt;/li>
&lt;li>Containerize the backend, API, and frontend components using Docker to enable reproducible deployment and easy integration by external users.&lt;/li>
&lt;/ul></description></item><item><title>Environmental NeTworked Sensor (ENTS)</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre26/ucsc/ents/</link><pubDate>Fri, 30 Jan 2026 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre26/ucsc/ents/</guid><description>&lt;h3 id="ents-i-usability-improvements-for-visualization-dashboard">ENTS I: Usability improvements for visualization dashboard&lt;/h3>
&lt;p>
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="Data Visualization Dashboard" srcset="
/project/osre26/ucsc/ents/osp1_huda3c1d46887767e16b865c47973b8288_360491_2d797937cbe25a879de96b44cb5c65b3.webp 400w,
/project/osre26/ucsc/ents/osp1_huda3c1d46887767e16b865c47973b8288_360491_baae6484e015277af7b09e866b6869f5.webp 760w,
/project/osre26/ucsc/ents/osp1_huda3c1d46887767e16b865c47973b8288_360491_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre26/ucsc/ents/osp1_huda3c1d46887767e16b865c47973b8288_360491_2d797937cbe25a879de96b44cb5c65b3.webp"
width="760"
height="759"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> Data Visualization, Backend, Frontend, UI/UX, Analytics&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong>
&lt;ul>
&lt;li>&lt;em>Required:&lt;/em> React, Javascript, Python, SQL, Git&lt;/li>
&lt;li>&lt;em>Nice to have:&lt;/em> Flask, Docker, CI/CD, AWS, Authentication&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Medium&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/colleen-josephson/">Colleen Josephson&lt;/a>, &lt;a href="mailto:alevy1@ucsc.edu">Alec Levy&lt;/a>, &lt;a href="mailto:jtmadden@ucsc.edu">John Madden&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>The Environmental NeTworked Sensor (ENTS) platform, formally Open Sensing Platform (OSP), implements data visualization website for monitoring microbial fuel cell sensors (see &lt;a href="https://github.com/jlab-sensing/ENTS-backend" target="_blank" rel="noopener">GitHub&lt;/a>). The mission is to scale up the current platform to support other researchers or citizen scientists in integrating their novel sensing hardware or microbial fuel cell sensors for monitoring and data analysis. Examples of the types of sensors currently deployed are sensors measuring soil moisture, temperature, current, and voltage in outdoor settings. The focus of the software half of the project involves building upon our existing visualization web platform, and adding additional features to support the mission. A live version of the website is available &lt;a href="https://dirtviz.jlab.ucsc.edu/" target="_blank" rel="noopener">here&lt;/a>.&lt;/p>
&lt;p>Below is a list of project ideas that would be beneficial to the ENTS project. You are not limited to the following projects, and encourage new ideas that enhance the platform:&lt;/p>
&lt;ul>
&lt;li>Drag and drop charts functionality&lt;/li>
&lt;li>Creation of unique charts by users (with unique equations)&lt;/li>
&lt;li>Customizable options of charts (color, line width, datapoint/line style, axis labels)&lt;/li>
&lt;li>Exportable charts (with customizable options)&lt;/li>
&lt;li>Saving layouts via url&lt;/li>
&lt;/ul>
&lt;h3 id="ents-ii-migration-to-tockos">ENTS II: Migration to TockOS&lt;/h3>
&lt;p>
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="ENTS in the wild" srcset="
/project/osre26/ucsc/ents/flower_bed_hua65f08ca6bedf0f2d60c653056e1b3a7_800588_c34f23edec4789d86dcf04482fa38282.webp 400w,
/project/osre26/ucsc/ents/flower_bed_hua65f08ca6bedf0f2d60c653056e1b3a7_800588_8a4ed9b7cf50d0c7493779c714094459.webp 760w,
/project/osre26/ucsc/ents/flower_bed_hua65f08ca6bedf0f2d60c653056e1b3a7_800588_1200x1200_fit_q75_h2_lanczos.webp 1200w"
src="https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre26/ucsc/ents/flower_bed_hua65f08ca6bedf0f2d60c653056e1b3a7_800588_c34f23edec4789d86dcf04482fa38282.webp"
width="760"
height="369"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> Embedded system, operating system&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong>
&lt;ul>
&lt;li>&lt;em>Required:&lt;/em> Rust, C/C++, Git, Github&lt;/li>
&lt;li>&lt;em>Nice to have:&lt;/em> STM32 HAL, python&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Hard&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/colleen-josephson/">Colleen Josephson&lt;/a>, &lt;a href="mailto:jtmadden@ucsc.edu">John Madden&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>The current version of the hardware firmware is implemented in baremetal
through the use of STM hardware abstraction layer (HAL) drivers. We are
interested in porting the firmware implementation to an operating system (OS)
to allow for additional functionality to support environmental data logging.
&lt;a href="https://tockos.org/" target="_blank" rel="noopener">TockOS&lt;/a> is an embedded operating system designed for
running multiple concurrent, mutually distrustful applications on low-memory
and low-power microcontrollers that will be used. TockOS allows for OTA
updates, dynamic app loading, hardware multiplexing, and more. We envision
multiple users utilizing shared ENTS hardware that provides communication and
measurement capabilities. Thus, the initial cost of deploying wireless sensor
networks is reduced.&lt;/p>
&lt;p>The TockOS kernel is written in &lt;a href="https://rust-lang.org/" target="_blank" rel="noopener">Rust&lt;/a> to enhance
security. Userspace apps can be written in either C, C++, or Rust. Development
will be done through a remote development server to access the hardware. See
the following repos for the current status of the project:&lt;/p>
&lt;ul>
&lt;li>Userspace library: &lt;a href="https://github.com/jlab-sensing/libtock-c" target="_blank" rel="noopener">libtock-c&lt;/a>&lt;/li>
&lt;li>Kernel: &lt;a href="https://github.com/jlab-sensing/tock" target="_blank" rel="noopener">tock&lt;/a>&lt;/li>
&lt;li>Baremetal: &lt;a href="https://github.com/jlab-sensing/ENTS-node-firmware" target="_blank" rel="noopener">ENTS-node-firmware&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Scope of work:&lt;/p>
&lt;ul>
&lt;li>Writing kernel peripheral drivers.
&lt;ul>
&lt;li>Done entirely in Rust.&lt;/li>
&lt;li>Low-level understanding of microcontroller&lt;/li>
&lt;li>Basic kernel functionality knowledge.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Porting baremetal components to userland apps.
&lt;ul>
&lt;li>Involves porting STM HAL calls to TockOS syscalls.&lt;/li>
&lt;li>Primarily done in C.&lt;/li>
&lt;li>Understanding of syscalls.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul></description></item><item><title>Reproducible CXL Emulation</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre26/ucmerced/cxl_emu/</link><pubDate>Fri, 30 Jan 2026 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre26/ucmerced/cxl_emu/</guid><description>&lt;p>Compute Express Link (CXL) is an emerging memory interconnect standard that enables shared, coherent memory across CPUs, accelerators, and multiple hosts, unlocking new possibilities in hyperscale, HPC, and disaggregated systems. However, because access to real multi-host CXL hardware is limited, it is difficult for researchers and students to experiment with, evaluate, and reproduce results on advanced CXL topologies.
OCEAN (Open-source CXL Emulation At Hyperscale) [https://github.com/cxl-emu/OCEAN] is a full-stack CXL emulation platform built on QEMU that enables detailed emulation of CXL 3.0 memory systems, including multi-host shared memory pools, coherent fabric topologies, and latency modeling. This project will create reproducible experiment pipelines, automated deployment workflows, and user-friendly tutorials so that others can reliably run and extend CXL emulation experiments without requiring specialized hardware.&lt;/p>
&lt;h3 id="reproducible-cxl-emulation-for-multi-host-memory-systems">Reproducible CXL Emulation for Multi-Host Memory Systems&lt;/h3>
&lt;p>Streamline multi-host CXL emulation without specialized hardware.&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> &lt;code>CXL emulation&lt;/code> &lt;code>Memory Systems&lt;/code> &lt;code>Reproducibility&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> C/C++, Virtualization (QEMU), Scripting, Performance Modeling&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Medium&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="mailto:mrafi@ucmerced.edu">Mujahid Al Rafi&lt;/a>, &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/luanzheng-lenny-guo/">Luanzheng &amp;quot;Lenny&amp;quot; Guo&lt;/a>.&lt;/li>
&lt;/ul>
&lt;p>Tasks:&lt;/p>
&lt;ul>
&lt;li>Create automated deployment scripts and configuration templates for OCEAN-based CXL emulation topologies (single-host and multi-host).&lt;/li>
&lt;li>Develop a standardized experiment harness for running memory performance benchmarks (e.g., OSU micro-benchmarks, STREAM-style tests) in emulated CXL environments.&lt;/li>
&lt;li>Build reproducible experiment pipelines that others can run to evaluate latency, bandwidth, and scaling properties of CXL memory systems.&lt;/li>
&lt;li>Produce tutorials, documentation, and reproducibility artifacts to guide new users through setup, execution, and analysis.&lt;/li>
&lt;li>Package and contribute all scripts, configurations, and documentation back to the OCEAN open-source repository.&lt;/li>
&lt;/ul>
&lt;h3 id="exploring-security-and-isolation-in-cxl-based-memory-systems">Exploring Security and Isolation in CXL-Based Memory Systems&lt;/h3>
&lt;p>Investigate security and isolation properties of CXL-based memory systems using software emulation.&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> &lt;code>CXL Systems&lt;/code> &lt;code>Security&lt;/code> &lt;code>Memory Isolation&lt;/code> &lt;code>Side Channel&lt;/code> &lt;code>Emulation&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> C/C++, Virtualization (QEMU), Scripting, Computer Architecture, Security&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Medium&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="mailto:mrafi@ucmerced.edu">Mujahid Al Rafi&lt;/a>, &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/luanzheng-lenny-guo/">Luanzheng &amp;quot;Lenny&amp;quot; Guo&lt;/a>.&lt;/li>
&lt;/ul>
&lt;p>Tasks:&lt;/p>
&lt;ul>
&lt;li>Study the CXL memory model and fabric architecture to identify potential security and isolation risks in multi-host shared memory environments (e.g., contention, timing variation, and resource interference).&lt;/li>
&lt;li>Set up multi-host or multi-VM CXL emulation environments using OCEAN that mimic realistic multi-tenant deployments.&lt;/li>
&lt;li>Design and implement reproducible micro-benchmarks to measure timing, bandwidth contention, or observable interference through shared CXL memory pools.&lt;/li>
&lt;li>Analyze how fabric configuration choices (e.g., topology, latency injection, memory partitioning, or allocation policies) affect isolation and leakage behavior.&lt;/li>
&lt;li>Explore and prototype mitigation strategies—such as memory partitioning, throttling, or policy-driven allocation—and evaluate their effectiveness using the emulation platform.&lt;/li>
&lt;/ul></description></item><item><title>Omni-ST: Instruction-Driven Any-to-Any Multimodal Modeling for Spatial Transcriptomics</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre26/uci-ics/omni-st/</link><pubDate>Thu, 29 Jan 2026 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre26/uci-ics/omni-st/</guid><description>&lt;h2 id="project-description">Project description&lt;/h2>
&lt;p>Spatial transcriptomics (ST) integrates spatially resolved gene expression with tissue morphology, enabling the study of cellular organization, tissue architecture, and disease microenvironments. Modern ST datasets are inherently multimodal, combining histology images (H&amp;amp;E / IF), gene expression vectors, spatial graphs, cell annotations, and free-text pathology descriptions.&lt;/p>
&lt;p>However, most existing ST methods are task-specific and modality-siloed: separate models are trained for image-to-gene prediction, spatial domain identification, cell type classification, or text-based interpretation. This fragmentation limits cross-task generalization and scalability.&lt;/p>
&lt;p>
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="Omni-ST overview" srcset="
/project/osre26/uci-ics/omni-st/omni-st-overview_hu23ddd3d57afcbc47e213a42520991f5c_1307894_4023f7915e2a557bcacee3aecd015061.webp 400w,
/project/osre26/uci-ics/omni-st/omni-st-overview_hu23ddd3d57afcbc47e213a42520991f5c_1307894_8d4e33b30dc811f95fb70a843df58532.webp 760w,
/project/osre26/uci-ics/omni-st/omni-st-overview_hu23ddd3d57afcbc47e213a42520991f5c_1307894_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre26/uci-ics/omni-st/omni-st-overview_hu23ddd3d57afcbc47e213a42520991f5c_1307894_4023f7915e2a557bcacee3aecd015061.webp"
width="760"
height="664"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;p>&lt;strong>Omni-ST&lt;/strong> proposes a single &lt;strong>instruction-driven any-to-any multimodal backbone&lt;/strong> that treats each spatial transcriptomics modality as a “language” and formulates all tasks as:&lt;/p>
&lt;p>&lt;strong>Instruction + Input Modality → Output Modality&lt;/strong>&lt;/p>
&lt;p>Natural language is elevated from auxiliary metadata to a &lt;strong>unifying interface&lt;/strong> that specifies task intent, target modality, and biological context. This paradigm enables flexible, interpretable, and extensible spatial reasoning within a single model.&lt;/p>
&lt;hr>
&lt;h3 id="project-idea-instruction-driven-any-to-any-modeling-for-spatial-transcriptomics">Project Idea: Instruction-Driven Any-to-Any Modeling for Spatial Transcriptomics&lt;/h3>
&lt;p>&lt;strong>Topics:&lt;/strong> spatial transcriptomics, multimodal learning, instruction tuning, computational pathology&lt;br>
&lt;strong>Skills:&lt;/strong> PyTorch, deep learning, Transformers, multimodal representation learning&lt;br>
&lt;strong>Difficulty:&lt;/strong> Hard&lt;br>
&lt;strong>Size:&lt;/strong> 350 hours&lt;/p>
&lt;p>&lt;strong>Mentor:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Xi Li&lt;/strong> — &lt;a href="mailto:xil43@uci.edu">mailto:xil43@uci.edu&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Essential information:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>Design a unified multimodal backbone with lightweight modality adapters for histology images, gene expression vectors, spatial graphs, and text.&lt;/li>
&lt;li>Use natural language instructions to condition model behavior, enabling any-to-any translation without task-specific heads.&lt;/li>
&lt;li>Support core tasks including image → gene expression prediction, gene expression → cell type / spatial domain identification, region → text-based biological explanation, and text-based spatial retrieval.&lt;/li>
&lt;li>Evaluate the model across multiple spatial transcriptomics tasks within a single framework, emphasizing generalization and interpretability.&lt;/li>
&lt;li>Develop visualization and interpretation tools such as spatial maps and language-grounded explanations.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Expected deliverables:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>An open-source PyTorch implementation of the Omni-ST framework.&lt;/li>
&lt;li>Unified multitask benchmarks for spatial transcriptomics.&lt;/li>
&lt;li>Visualization and interpretation tools for spatial predictions.&lt;/li>
&lt;li>Documentation and tutorials demonstrating how to add new tasks via instructions.&lt;/li>
&lt;/ul></description></item><item><title>StatWrap</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre26/northwestern/statwrap/</link><pubDate>Thu, 29 Jan 2026 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre26/northwestern/statwrap/</guid><description>&lt;p>&lt;a href="https://sites.northwestern.edu/statwrap/" target="_blank" rel="noopener">StatWrap&lt;/a> is a free and open-source assistive, non-invasive discovery and inventory tool to document research projects. It inventories project assets (e.g., code files, data files, manuscripts, documentation) and organizes information without additional input from the user. It also provides structure for users to add searchable and filterable notes connected to files to help communicate metadata about intent and analysis steps.&lt;/p>
&lt;p>At its core, StatWrap helps investigators identify and track changes in a research project as it evolves - which may affect reproducibility. For example: (1) people on the project can change over time, so processes may not be consistently executed due to transitions in employment; (2) data changes over time, due to accruing additional cases, adding new variables, or correcting mistakes in existing data; (3) software (e.g. used for data preparation and statistical analysis) evolves as it is edited, improved, and optimized; and (4) software can break or produce different results due to changes &amp;lsquo;under the hood&amp;rsquo; such as updates to statistical packages, compilers, or interpreters. StatWrap passively and actively documents these changes to support reproducibility.&lt;/p>
&lt;p>Additional information:&lt;/p>
&lt;ul>
&lt;li>&lt;a href="https://sites.northwestern.edu/statwrap/" target="_blank" rel="noopener">StatWrap home&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://github.com/stattag/statwrap" target="_blank" rel="noopener">StatWrap code (GitHub)&lt;/a>&lt;/li>
&lt;/ul>
&lt;h3 id="group-and-individual-customizations">Group and Individual Customizations&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: &lt;code>configuration&lt;/code>, &lt;code>user interface&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: JavaScript, React&lt;/li>
&lt;li>&lt;strong>Difficulty&lt;/strong>: Medium&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong>: Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentor&lt;/strong>: &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/luke-rasmussen/">Luke Rasmussen&lt;/a>, &lt;a href="mailto:ewhitley@northwestern.edu">Eric Whitley&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>The goal of this project is to expand the existing capabilities of StatWrap to provide more flexibility to individual users and groups. Currently, features within StatWrap such as the directory template for creating new projects and the reproducibility checklist are static, meaning everyone who downloads StatWrap has the same configuration. However, each user and team work differently and should be able to configure StatWrap to support their needs.&lt;/p>
&lt;p>When a user creates a new project, StatWrap provides a collection of project templates. These create a directory hierarchy, along with some seed files (e.g., a README.md file in the project root). Different groups have their own conventions for creating project directories. While StatWrap can be released with additional project templates defined, there are many situations in which users would want to keep their project template local. StatWrap should allow a user to create a project template configuration, from scratch or being seeded by the contents of an existing project. A user should then be able to export this configuration, share it with others, and other user should have the ability to import the configuration into their instance of StatWrap.&lt;/p>
&lt;p>Similarly, StatWrap provides a reproducibility checklist that includes six existing checklist items. However, individual users and groups may have their own checklists, including institution-specific steps. Similar to the project template, a user should be able to configure additional items for the checklist. A user should be able to create a &amp;ldquo;checklist template&amp;rdquo; that can be used and applied in multiple projects. A specific project&amp;rsquo;s template should also be modifiable once the checklist has been created.&lt;/p>
&lt;p>The specific tasks of the project include:&lt;/p>
&lt;ul>
&lt;li>Developing a configuration scheme for New Project templates&lt;/li>
&lt;li>Provide a way for a user to import/export a template for New Projects&lt;/li>
&lt;li>Develop a configuration scheme for Reproducibility Checklist questions&lt;/li>
&lt;li>Provide a way for a user to import/export a template for the Reproducibility Checklist&lt;/li>
&lt;li>Develop a configuration scheme for asset (file) attributes&lt;/li>
&lt;li>Develop unit tests and conduct system testing&lt;/li>
&lt;/ul></description></item><item><title>Network Simulation Bridge • Enabling Interactive Network Models</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre26/ucsc/nsb-network-models/</link><pubDate>Wed, 28 Jan 2026 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre26/ucsc/nsb-network-models/</guid><description>&lt;p>The Network Simulation Bridge &amp;ndash; &lt;a href="https://github.com/nsb-ucsc/nsb" target="_blank" rel="noopener">NSB&lt;/a> &amp;ndash; is a network co-simulation framework that bridges together applications and network simulators. It enables students, researchers, and developers to prototype their applications and systems on simulated networks. It consists of a message server and client endpoint interfaces which together form a bridge, routing application message payloads through the network simulator. NSB is designed to be extensible through modular interfaces that serve to allow users to contribute new features and modules that suit evolving and emerging use cases. NSB is developed to be application-, network simulator-, and platform-agnostic so that users and developers are empowered to integrate any application front-end with any network simulator back-end, providing versatility and flexibility when used alongside other tools in larger systems and applications.&lt;/p>
&lt;p>NSB was created in-house by the &lt;a href="https://inrg.engineering.ucsc.edu/" target="_blank" rel="noopener">Inter-Networking Research Group&lt;/a> and is now being developed into a more full-featured open-source tool and ecosystem in partnership with the &lt;a href="https://ucsc-ospo.github.io/" target="_blank" rel="noopener">UCSC OSPO&lt;/a> and as part of the &lt;a href="https://www.nsf.gov/funding/opportunities/pose-pathways-enable-open-source-ecosystems" target="_blank" rel="noopener">NSF Pathways to Enable Open-Source Ecosystems&lt;/a> program. In this transition to a more polished and feature-rich product, the next phase of NSB development will involve the engineering of new quality-of-life features, testing and iteration of the core tool itself, and user-centric refinement via implementation in interdisciplinary system models.&lt;/p>
&lt;h3 id="develop-a-user-centric-website-for-nsb">Develop a User-Centric Website for NSB&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> &lt;code>Web Development&lt;/code> &lt;code>Dynamic Updates&lt;/code> &lt;code>UX&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> web development experience, good communicator, (HTML/CSS), (Javascript)&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Moderate&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Large&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="mailto:hkuttive@ucsc.edu">Harikrishna Kuttivelil&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Develop a clean and welcoming landing page and website for the project. The organization needs to reflect the needs of both users and potential project contributors. This website will be the first impression for people new to the project and should&lt;/p>
&lt;p>Specific tasks:&lt;/p>
&lt;ul>
&lt;li>Work with mentors on understanding the context of the project and the expected needs of the users.&lt;/li>
&lt;li>Port relevant documentation and tutorials from the &lt;a href="https://github.com/nsb-ucsc/nsb" target="_blank" rel="noopener">repository page&lt;/a>, ensuring updates in the repository are reflected in the website.&lt;/li>
&lt;li>Study existing open source product websites and draw insights to include in our own design.&lt;/li>
&lt;li>Design the structure of the website according to best OS, visual design, and accessibility design practices.&lt;/li>
&lt;li>Include visual content that showcases NSB integration and testimonials (if applicable).&lt;/li>
&lt;/ul>
&lt;h3 id="improve-the-user-experience-of-nsb">Improve the User Experience of NSB&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> &lt;code>Software Engineering&lt;/code> &lt;code>User-Centric Development&lt;/code> &lt;code>Visualization&lt;/code> &lt;code>UI/UX&lt;/code> &lt;code>Documentation&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> package management, toolchain implementation, process automation, technical writing, (visualization), (bash), (Python), (C++)&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Moderate&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Medium&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="mailto:hkuttive@ucsc.edu">Harikrishna Kuttivelil&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Our goal has always been to keep NSB streamlined and out of the way of the users and developers. In line with that, we want our tool to be easily available and installable, and we want the experience of using it to feel minimal and non-intrusive while providing sufficient observability of NSB&amp;rsquo;s internals for those who want it.&lt;/p>
&lt;p>Specific tasks:&lt;/p>
&lt;ul>
&lt;li>Work with mentors and potential users on identifying aspects of the user experience that can refined for better quality-of-life experiences.&lt;/li>
&lt;li>Verify and iterate on existing software packaging methods for NSB to ensure that tool setup is stress-free.&lt;/li>
&lt;li>Refine and update existing documentation and tutorials to reflect improvements in the setup, installation, and usage processes.&lt;/li>
&lt;li>Work with mentors and other contributors to work backwards from what the user wants to see to design the user interface.&lt;/li>
&lt;li>Work with other contributors (see below) to develop a &lt;em>Network-in-a-Box&lt;/em> experience with NSB.&lt;/li>
&lt;/ul>
&lt;h3 id="create-a-network-in-a-box-experience-with-nsb">Create a &lt;em>Network-in-a-Box&lt;/em> Experience with NSB&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> &lt;code>Software Engineering&lt;/code>, &lt;code>Simulation&lt;/code>, &lt;code>System Modeling&lt;/code>, &lt;code>System Design&lt;/code>, &lt;code>Visualization&lt;/code>, &lt;code>UI/UX&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> software integration and interfacing, toolchain implementation, process automation, C++, (visualization), (LLM-enabled code generation), (technical writing)&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Challenging&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Large&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="mailto:hkuttive@ucsc.edu">Harikrishna Kuttivelil&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>NSB was originally designed for networking graduate students to interface with application-layer programs. But since then, there&amp;rsquo;s been more of an appetite for a simpler &lt;em>network-in-a-box&lt;/em> approach that would allow users to quickly deploy baseline or generated network simulations that are ready for use with NSB.&lt;/p>
&lt;p>Specific tasks:&lt;/p>
&lt;ul>
&lt;li>Learn how to use one of the major open-source network simulators (&lt;a href="https://www.nsnam.org/" target="_blank" rel="noopener">ns3&lt;/a> or &lt;a href="https://omnetpp.org/" target="_blank" rel="noopener">OMNeT++&lt;/a>).&lt;/li>
&lt;li>Work with mentors in designing a simpler, minimal user experience of operating NSB.&lt;/li>
&lt;li>Develop tools to automatically create network simulations given input parameters (type of network, number of nodes, description of infrastructure).&lt;/li>
&lt;li>Create documentation aimed at new users.&lt;/li>
&lt;li>Implement or embed network visualizations to enrich the user experience.&lt;/li>
&lt;/ul>
&lt;h3 id="implement-networked-system-models-to-evaluate-quality-of-nsb">Implement Networked System Models to Evaluate Quality of NSB&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> &lt;code>System Modeling&lt;/code> &lt;code>Simulation&lt;/code> &lt;code>System Design&lt;/code> &lt;code>Software Development&lt;/code> &lt;code>Product Testing&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> software integration, good communication, qualitative research, (proficiency in Python and/or C++), (processing scientific and technical literature)&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Challenging&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Large&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="mailto:hkuttive@ucsc.edu">Harikrishna Kuttivelil&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>NSB is a relatively new tool and has not been extensively tested outside of the core contributors, who know a bit too much about the tool. We need to better understand what external user and contributor experience will be like, and the best way to do that is to start developing with NSB to build models of connected systems, i.e., sensor networks, smart homes, smart farms, etc.&lt;/p>
&lt;p>Specific tasks:&lt;/p>
&lt;ul>
&lt;li>Research academic literature and relevant works to identify relevant distributed applications to model.&lt;/li>
&lt;li>Work with mentors and collaborators to plan implementation of selected system models.&lt;/li>
&lt;li>Track and report issues and concerns in quality-of-life experiences, critical errors, or difficulties.&lt;/li>
&lt;li>Work with mentors and contributors to address issues and concerns.&lt;/li>
&lt;li>Refine and update existing documentation and tutorials to reflect improvements in the setup, installation, and usage processes.&lt;/li>
&lt;li>Work with other contributors (see below) in reviewing and cross-referencing model implementations.&lt;/li>
&lt;/ul>
&lt;h3 id="model-autonomous-vehicle-networks-to-drive-new-feature-development-in-nsb">Model Autonomous Vehicle Networks to Drive New Feature Development in NSB&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> &lt;code>System Modeling&lt;/code> &lt;code>Simulation&lt;/code> &lt;code>System Design&lt;/code> &lt;code>Software Development&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> requirement-based software design, message parsing interfaces, server-client communication, (proficiency in Python and/or C++), (processing scientific and technical literature)&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Challenging&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Large&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="mailto:hkuttive@ucsc.edu">Harikrishna Kuttivelil&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>NSB today serves its named purpose &amp;ndash; message relaying. However, modeling complex systems can sometimes involving synchronizing other simulation features, like &lt;em>mobility&lt;/em> when dealing with vehivle networks. Implementing a generic layer of being able to synchronize user-defined features across endpoints would be a powerful, enabling feature in NSB. In the process, we may also uncover opportunities for improving the NSB developer experience.&lt;/p>
&lt;p>Specific tasks:&lt;/p>
&lt;ul>
&lt;li>Research academic literature and relevant works to identify and design potential autonomous vehicle network models.&lt;/li>
&lt;li>Work with mentors and collaborators to iterate on system designs to ensure it serves the purpose of furthering NSB development.&lt;/li>
&lt;li>Help mentors design and develop the &lt;em>new&lt;/em> feature synchronization feature in NSB, driven by the autonomous vehicle system model.&lt;/li>
&lt;li>Develop and iterate feature synchronization, using mobility as the synchronized feature.&lt;/li>
&lt;li>Create documentation and tutorials to serve as resources for future users, contributors, and developers.&lt;/li>
&lt;li>Work with other contributors (see above) in reviewing and cross-referencing model implementations.&lt;/li>
&lt;/ul></description></item><item><title>Peersky Browser</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre26/ucsc/peersky/</link><pubDate>Mon, 26 Jan 2026 12:00:00 -0800</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre26/ucsc/peersky/</guid><description>&lt;p>&lt;a href="https://peersky.p2plabs.xyz/" target="_blank" rel="noopener">Peersky Browser&lt;/a> is an experimental personal gatekeeper to a new way of accessing web content. In a world where a handful of big companies control most of the internet, Peersky leverages distributed web technologies—&lt;a href="https://ipfs.tech/" target="_blank" rel="noopener">IPFS&lt;/a>, &lt;a href="https://holepunch.to/" target="_blank" rel="noopener">Hypercore&lt;/a>, and &lt;a href="https://www.bittorrent.com/" target="_blank" rel="noopener">BitTorrent&lt;/a> return control to the users. With integrated local P2P applications, Peersky offers a fresh, community-driven approach to browsing.&lt;/p>
&lt;h3 id="implement-p2p-extension-store">Implement P2P Extension Store&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> &lt;code>Browser Extensions&lt;/code>, &lt;code>P2P&lt;/code>, &lt;code>Electron&lt;/code>, &lt;code>IPFS&lt;/code>, &lt;code>Hypercore&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> JavaScript, Electron.js, HTML/CSS, P2P&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Moderate&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Medium (175 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/akhilesh-thite/">Akhilesh Thite&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Build a decentralized extension distribution flow that archives WebExtensions into a predictable P2P-friendly layout and installs directly from P2P URLs.&lt;/p>
&lt;p>&lt;strong>Tasks:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Define the P2P extension layout:&lt;/strong>
&lt;ul>
&lt;li>Standardize &lt;code>/extensions/{name}/{version}/extension.zip&lt;/code> and &lt;code>/extensions/{name}/index.json&lt;/code>.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Design install compatibility for P2P URLs:&lt;/strong>
&lt;ul>
&lt;li>Support &lt;code>peersky://extensions/...&lt;/code> and P2P links from IPFS or Hypercore.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Archive Chrome Web Store extensions to P2P:&lt;/strong>
&lt;ul>
&lt;li>Use &lt;a href="https://github.com/akhileshthite/chrome-extension-fetch" target="_blank" rel="noopener">chrome-extension-fetch&lt;/a> to fetch CRX, convert to ZIP, and store it in the layout.&lt;/li>
&lt;li>Update &lt;code>index.json&lt;/code> with metadata like version, &lt;code>P2P_URL&lt;/code>, and &lt;code>fetchedAt&lt;/code>.&lt;/li>
&lt;li>Publish the folder to IPFS or Hypercore and feed the link into the install flow.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Add settings and trust model:&lt;/strong>
&lt;ul>
&lt;li>Add a “Load from P2P” settings toggle.&lt;/li>
&lt;li>Support curated extension hoards (&lt;code>index.json&lt;/code>) and automated updates.&lt;/li>
&lt;li>Clarify integrity assumptions and sandboxing expectations.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>More details in the issue:&lt;/strong> &lt;a href="https://github.com/p2plabsxyz/peersky-browser/issues/42" target="_blank" rel="noopener">https://github.com/p2plabsxyz/peersky-browser/issues/42&lt;/a>&lt;/p>
&lt;h3 id="backup--restore-system-p2p-json--tabs-restore">Backup &amp;amp; Restore System (P2P JSON + Tabs Restore)&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> &lt;code>P2P&lt;/code>, &lt;code>Backup&lt;/code>, &lt;code>Session Restore&lt;/code>, &lt;code>Electron&lt;/code>, &lt;code>Onboarding&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> JavaScript, Electron.js, HTML/CSS, P2P&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Moderate&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Medium (175 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/akhilesh-thite/">Akhilesh Thite&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Implement a backup and restore pipeline for Peersky’s P2P app data and session state, including an onboarding import flow for tabs from other browsers.&lt;/p>
&lt;p>&lt;strong>Tasks:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Generate a P2P backup bundle:&lt;/strong>
&lt;ul>
&lt;li>Create a single &lt;code>.zip&lt;/code> that contains &lt;code>lastOpened.json&lt;/code>, &lt;code>tabs.json&lt;/code>, &lt;code>ensCache.json&lt;/code>, and the &lt;code>ipfs/&lt;/code> and &lt;code>hyper/&lt;/code> directories.&lt;/li>
&lt;li>Add an option to generate a CID for the backup zip for instant sharing.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Restore from settings:&lt;/strong>
&lt;ul>
&lt;li>Upload a P2P backup zip file.&lt;/li>
&lt;li>Load a backup from an IPFS or Hyper CID.&lt;/li>
&lt;li>Import Chrome/Firefox tab exports produced by a helper extension.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Define the helper extension export format:&lt;/strong>
&lt;ul>
&lt;li>Create a small extension under &lt;a href="https://github.com/p2plabsxyz/" target="_blank" rel="noopener">p2plabsxyz&lt;/a> to export windows and tabs (URLs, titles, window grouping, active tab indexes).&lt;/li>
&lt;li>Ensure the export format is compatible with Peersky’s import pipeline.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Add onboarding import flow:&lt;/strong>
&lt;ul>
&lt;li>Show &lt;code>onboarding.html&lt;/code> on first launch and prompt “Import tabs from another browser?”.&lt;/li>
&lt;li>Guide users to install the helper extension and import the generated file.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Align with existing persistence:&lt;/strong>
&lt;ul>
&lt;li>Reuse &lt;code>lastOpened.json&lt;/code>, &lt;code>tabs.json&lt;/code>, and &lt;code>peersky-browser-tabs&lt;/code> localStorage for restores.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>More details in the issue:&lt;/strong> &lt;a href="https://github.com/p2plabsxyz/peersky-browser/issues/60" target="_blank" rel="noopener">https://github.com/p2plabsxyz/peersky-browser/issues/60&lt;/a>&lt;/p></description></item><item><title>Scenic: A Language for Design and Verification of Autonomous Cyber-Physical Systems</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre26/ucsc/scenic/</link><pubDate>Sat, 24 Jan 2026 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre26/ucsc/scenic/</guid><description>&lt;p>&lt;a href="https://scenic-lang.org/" target="_blank" rel="noopener">Scenic&lt;/a> is a probabilistic programming language for the design and verification of autonomous cyber-physical systems like self-driving cars.
Scenic allows users to define &lt;em>scenarios&lt;/em> for testing or training their system by putting a probability distribution on the system&amp;rsquo;s environment: the positions, orientations, and other properties of objects and agents, as well as their behaviors over time.
Sampling these scenarios and running them in a simulator yields synthetic data which can be used to train or test a system.
Since Scenic was released open-source in 2019, our group and many others in academia have used Scenic to find, diagnose, and fix bugs in autonomous cars, aircraft, robots, and other kinds of systems.
In industry, it is being used by companies including Boeing, Meta, Deutsche Bahn, and Toyota in domains spanning autonomous driving, aviation, household robotics, railways, maritime, and virtual reality.&lt;/p>
&lt;p>Our long-term goal is for Scenic to become a widely-used common representation and toolkit supporting the entire design lifecycle of AI-based cyber-physical systems.
Towards this end, we have many summer projects available, ranging from adding new application domains to working on the Scenic compiler and sampler:&lt;/p>
&lt;ol>
&lt;li>Extensions to the Scenic driving domain&lt;/li>
&lt;li>Interfacing Scenic to new simulators&lt;/li>
&lt;li>Scenic distribution visualizer&lt;/li>
&lt;/ol>
&lt;p>See the sections below for details.&lt;/p>
&lt;h3 id="extensions-to-the-scenic-driving-domain">Extensions to the Scenic Driving Domain&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> &lt;code>Autonomous Driving&lt;/code> &lt;code>3D modeling&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> Python; basic vector geometry&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Moderate&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Medium or Large (175 or 350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/daniel-fremont/">Daniel Fremont&lt;/a>, &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/eric-vin/">Eric Vin&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Scenic scenarios written to test autonomous vehicles use the &lt;a href="https://docs.scenic-lang.org/en/latest/modules/scenic.domains.driving.html" target="_blank" rel="noopener">driving domain&lt;/a>, a Scenic library defining driving-specific concepts including cars, pedestrians, roads, lanes, and intersections.
The library extracts information about road networks, such as the shapes of lanes, from files in the standard &lt;a href="https://www.asam.net/standards/detail/opendrive/" target="_blank" rel="noopener">OpenDRIVE&lt;/a> format.&lt;/p>
&lt;p>There are several potential goals of this project, including:&lt;/p>
&lt;ul>
&lt;li>Supporting importing complex object information from simulators like CARLA.&lt;/li>
&lt;li>Extending the domain to incorporate additional metadata, such as highway entrances and exits.&lt;/li>
&lt;li>Fixing various bugs and limitations that exist in the driving domain (e.g. &lt;a href="https://github.com/BerkeleyLearnVerify/Scenic/issues/274" target="_blank" rel="noopener">Issue #274&lt;/a> and &lt;a href="https://github.com/BerkeleyLearnVerify/Scenic/issues/295" target="_blank" rel="noopener">Issue #295&lt;/a>).&lt;/li>
&lt;/ul>
&lt;h3 id="interfacing-scenic-to-new-simulators">Interfacing Scenic to New Simulators&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> &lt;code>Simulation&lt;/code> &lt;code>Autonomous Driving&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> Python&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Moderate&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Medium or Large (175 or 350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/daniel-fremont/">Daniel Fremont&lt;/a>, &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/eric-vin/">Eric Vin&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Scenic is designed to be &lt;a href="https://docs.scenic-lang.org/en/latest/new_simulator.html" target="_blank" rel="noopener">easily-interfaced to new simulators&lt;/a>.
Depending on student interest, we could pick a simulator which would open up new kinds of applications for Scenic and write an interface for it.
Some possibilities include:&lt;/p>
&lt;ul>
&lt;li>The &lt;a href="https://github.com/tier4/AWSIM" target="_blank" rel="noopener">AWSIM&lt;/a> driving simulator (to allow testing the &lt;a href="https://autoware.org/" target="_blank" rel="noopener">Autoware&lt;/a> open-source autonomous driving software stack)&lt;/li>
&lt;li>The &lt;a href="https://www.ipg-automotive.com/solutions/product-portfolio/carmaker/" target="_blank" rel="noopener">CarMaker&lt;/a> driving simulator&lt;/li>
&lt;/ul>
&lt;p>The goal of the project would be to create an interface between Scenic and the new simulator and write scenarios demonstrating it.
If time allows, we could do a case study on a realistic system for publication at an academic conference.&lt;/p>
&lt;h3 id="tool-to-visualize-scenario-distributions">Tool to Visualize Scenario Distributions&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> &lt;code>Visualization&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> Python; basic visualization and graphics&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Moderate&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Medium or Large (175 or 350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/daniel-fremont/">Daniel Fremont&lt;/a>, &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/eric-vin/">Eric Vin&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>A Scenic scenario represents a distribution over scenes, but it can be difficult to interpret what exactly this distribution represents. Being able to visualize this distribution would be helpful for understanding and reasoning about Scenarios.&lt;/p>
&lt;p>The goal of this project would be to build on an existing prototype for visualizing these distributions, and to create a tool that can be used by the wider Scenic community.&lt;/p></description></item><item><title>CauST: Causal Gene Intervention for Robust Spatial Domain Identification</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre26/uci/caust/</link><pubDate>Wed, 21 Jan 2026 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre26/uci/caust/</guid><description>&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> spatial transcriptomics, spatial domain identification, causal inference, gene intervention&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong>
&lt;ul>
&lt;li>&lt;strong>Programming Languages:&lt;/strong> Python (PyTorch preferred)&lt;/li>
&lt;li>&lt;strong>Machine Learning:&lt;/strong> causal inference, representation learning, clustering&lt;/li>
&lt;li>&lt;strong>Data Analysis:&lt;/strong> spatial transcriptomics preprocessing and evaluation (ARI, cross-slice generalization)&lt;/li>
&lt;li>&lt;strong>Bioinformatics Knowledge (preferred):&lt;/strong> spatial transcriptomics, scRNA-seq, gene perturbation analysis&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Advanced&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/lijinghua-zhang/">Lijinghua Zhang&lt;/a> (contact person)&lt;/li>
&lt;/ul>
&lt;h3 id="project-idea-description">&lt;strong>Project Idea Description&lt;/strong>&lt;/h3>
&lt;p>Spatial domain identification is a core task in spatial transcriptomics (ST), aiming to segment tissue sections into biologically meaningful regions based on spatially resolved gene expression profiles. These spatial domains often correspond to anatomical layers, functional niches, or microenvironmental states, and are widely used as the basis for downstream biological interpretation.&lt;/p>
&lt;p>Despite strong empirical performance, most existing spatial domain identification methods rely on &lt;strong>purely correlational gene signals&lt;/strong>. Genes are selected or weighted based on association with spatial patterns, without distinguishing whether they &lt;em>causally drive&lt;/em> domain formation or merely reflect downstream or confounded effects. As a result, current models often suffer from limited robustness and poor generalization across tissue sections or donors.&lt;/p>
&lt;h3 id="problem-correlation-driven-gene-usage-and-limited-generalization">&lt;strong>Problem: Correlation-Driven Gene Usage and Limited Generalization&lt;/strong>&lt;/h3>
&lt;p>In standard pipelines, gene expression features are typically used wholesale or filtered using heuristic criteria (e.g., highly variable genes). However, many genes that are strongly correlated with spatial domains are not causally responsible for domain structure. Including such non-causal or confounded genes can:&lt;/p>
&lt;ul>
&lt;li>Reduce robustness across slices and donors&lt;/li>
&lt;li>Obscure true domain-driving biological signals&lt;/li>
&lt;li>Limit interpretability of spatial domain assignments&lt;/li>
&lt;/ul>
&lt;p>Empirically, domain identification performance often degrades substantially in cross-slice or cross-donor evaluation settings, underscoring the need for causally informed feature selection.&lt;/p>
&lt;h3 id="proposed-solution-caust">&lt;strong>Proposed Solution: CauST&lt;/strong>&lt;/h3>
&lt;p>This project proposes &lt;strong>CauST&lt;/strong>, a &lt;strong>Causal Gene Intervention framework&lt;/strong> for robust spatial domain identification.&lt;/p>
&lt;p>CauST aims to identify &lt;strong>domain-driving genes&lt;/strong> by estimating their causal influence on spatial domain assignments via &lt;strong>in-silico gene interventions&lt;/strong>. Instead of relying on observational correlations, CauST approximates counterfactual gene knockouts by perturbing individual gene expressions while controlling for confounding factors.&lt;/p>
&lt;p>In addition, CauST leverages &lt;strong>cross-slice invariance&lt;/strong> as a practical criterion for causal gene discovery, prioritizing genes whose effects on spatial domain identification remain stable across tissue sections and donors.&lt;/p>
&lt;p>By filtering or reweighting genes based on estimated causal influence, CauST improves the robustness, generalizability, and interpretability of spatial domain identification models.&lt;/p>
&lt;h3 id="project-objectives">&lt;strong>Project Objectives&lt;/strong>&lt;/h3>
&lt;ol>
&lt;li>&lt;strong>Causal Gene Effect Estimation&lt;/strong>
&lt;ul>
&lt;li>Design in-silico intervention strategies to estimate gene-level causal effects on spatial domain assignments.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Invariant Effect Analysis&lt;/strong>
&lt;ul>
&lt;li>Identify genes with stable effects across tissue sections or donors.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Causal Gene Filtering&lt;/strong>
&lt;ul>
&lt;li>Develop filtering or reweighting schemes based on estimated causal influence.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Integration with Existing Methods&lt;/strong>
&lt;ul>
&lt;li>Integrate CauST into state-of-the-art spatial domain identification pipelines.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Evaluation and Validation&lt;/strong>
&lt;ul>
&lt;li>Benchmark robustness, cross-slice generalization, and interpretability on public spatial transcriptomics datasets.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ol>
&lt;h3 id="project-deliverables">&lt;strong>Project Deliverables&lt;/strong>&lt;/h3>
&lt;ol>
&lt;li>&lt;strong>CauST Framework Implementation&lt;/strong>
&lt;ul>
&lt;li>Open-source Python implementation compatible with common spatial transcriptomics toolchains.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Causal Gene Benchmarks&lt;/strong>
&lt;ul>
&lt;li>Quantitative evaluation of causal gene filtering and its impact on domain identification.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Visualization Tools&lt;/strong>
&lt;ul>
&lt;li>Tools for visualizing gene interventions, causal scores, and spatial effects.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Documentation and Tutorials&lt;/strong>
&lt;ul>
&lt;li>Clear examples enabling adoption of CauST by the broader community.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ol>
&lt;h3 id="impact">&lt;strong>Impact&lt;/strong>&lt;/h3>
&lt;p>CauST introduces a causally grounded perspective to spatial domain identification by explicitly modeling gene-level interventions. By shifting from correlation-driven gene usage to causal gene selection, this project improves robustness, generalizability, and biological interpretability in spatial transcriptomics analysis. CauST has the potential to serve as a foundational framework for integrating causal reasoning into spatial omics representation learning.&lt;/p></description></item><item><title>Agent4Target: An Agent-based Evidence Aggregation Toolkit for Therapeutic Target Identification</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre26/uci/agent4target/</link><pubDate>Tue, 20 Jan 2026 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre26/uci/agent4target/</guid><description>&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> therapeutic target identification, drug discovery, evidence aggregation, AI agents, biomedical knowledge integration&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong>
&lt;ul>
&lt;li>&lt;strong>Programming Languages:&lt;/strong> Python; experience with modern ML tooling preferred&lt;/li>
&lt;li>&lt;strong>Machine Learning / AI:&lt;/strong> agent-based systems, workflow orchestration, weak supervision (basic), representation learning&lt;/li>
&lt;li>&lt;strong>Software Engineering:&lt;/strong> modular system design, APIs, CLI tools, documentation&lt;/li>
&lt;li>&lt;strong>Biomedical Knowledge (preferred):&lt;/strong> familiarity with drug–target databases (e.g., PHAROS, DepMap, Open Targets)&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Advanced&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/ziheng-duan/">Ziheng Duan&lt;/a> (contact person)&lt;/li>
&lt;/ul>
&lt;h3 id="project-idea-description">&lt;strong>Project Idea Description&lt;/strong>&lt;/h3>
&lt;p>Identifying and prioritizing high-quality therapeutic targets is a foundational yet challenging task in drug discovery. Modern target identification relies on aggregating heterogeneous evidence from multiple sources, including genetic perturbation screens, disease associations, chemical biology, and biomedical literature. These evidence sources are highly fragmented, noisy, and heterogeneous in both format and reliability.&lt;/p>
&lt;p>While large language models and AI agents have recently shown promise in automating scientific workflows, many existing approaches focus on end-to-end prediction or conversational interfaces. Such systems are often difficult to reproduce, extend, or integrate into existing research pipelines, limiting their practical adoption by the biomedical community.&lt;/p>
&lt;p>This project proposes &lt;strong>Agent4Target&lt;/strong>, an &lt;strong>agent-based evidence aggregation toolkit&lt;/strong> that reframes therapeutic target identification as a &lt;strong>structured, modular workflow&lt;/strong>. Instead of using agents for free-form reasoning, Agent4Target employs agents as &lt;strong>orchestrated components&lt;/strong> that systematically collect, normalize, score, and explain evidence supporting candidate therapeutic targets.&lt;/p>
&lt;p>The goal is to deliver a &lt;strong>reusable, open-source toolchain&lt;/strong> that can be integrated into diverse drug discovery workflows, independent of any single downstream prediction model or publication.&lt;/p>
&lt;hr>
&lt;h3 id="key-idea-and-technical-approach">&lt;strong>Key Idea and Technical Approach&lt;/strong>&lt;/h3>
&lt;p>Agent4Target models target identification as a multi-stage, agent-driven pipeline, coordinated by a central orchestrator:&lt;/p>
&lt;ol>
&lt;li>
&lt;p>&lt;strong>Evidence Collector Agents&lt;/strong>&lt;br>
Specialized agents retrieve target-level evidence from heterogeneous sources, such as:&lt;/p>
&lt;ul>
&lt;li>Genetic perturbation and dependency data (e.g., DepMap)&lt;/li>
&lt;li>Target annotation and development status (e.g., PHAROS)&lt;/li>
&lt;li>Disease association scores (e.g., Open Targets)&lt;/li>
&lt;li>Automatically summarized literature evidence&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Normalization &amp;amp; Scoring Agent&lt;/strong>&lt;br>
Collected evidence is converted into a unified, structured schema using typed data models (e.g., JSON / Pydantic).&lt;br>
This agent performs:&lt;/p>
&lt;ul>
&lt;li>Evidence normalization across sources&lt;/li>
&lt;li>Confidence-aware scoring and aggregation&lt;/li>
&lt;li>Optional weighting or calibration strategies&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Explanation Agent&lt;/strong>&lt;br>
Rather than free-text generation, this agent produces &lt;strong>structured explanations&lt;/strong> that explicitly link scores to supporting evidence, enabling transparency and interpretability for downstream users.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Workflow Orchestrator&lt;/strong>&lt;br>
A lightweight orchestration layer (e.g., LangGraph or a state-machine-based controller) manages agent execution, dependencies, and failure handling, ensuring reproducibility and extensibility.&lt;/p>
&lt;/li>
&lt;/ol>
&lt;p>This modular design allows individual agents to be replaced, extended, or reused without altering the overall system.&lt;/p>
&lt;hr>
&lt;h3 id="project-objectives">&lt;strong>Project Objectives&lt;/strong>&lt;/h3>
&lt;ol>
&lt;li>&lt;strong>Design a Modular Agent-based Architecture&lt;/strong>
&lt;ul>
&lt;li>Define clear interfaces for evidence collection, normalization, scoring, and explanation agents.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Implement a Standardized Evidence Schema&lt;/strong>
&lt;ul>
&lt;li>Develop a unified data model for heterogeneous target-level evidence.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Build a Reproducible Orchestration Framework&lt;/strong>
&lt;ul>
&lt;li>Implement a deterministic, inspectable workflow for agent coordination.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Deliver a Community-Ready Toolkit&lt;/strong>
&lt;ul>
&lt;li>Provide CLI tools, example notebooks, and clear documentation to support adoption.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Benchmark and Case Studies&lt;/strong>
&lt;ul>
&lt;li>Demonstrate the toolkit on representative target identification scenarios using public datasets.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ol>
&lt;hr>
&lt;h3 id="project-deliverables">&lt;strong>Project Deliverables&lt;/strong>&lt;/h3>
&lt;ol>
&lt;li>&lt;strong>Open-Source Agent4Target Codebase&lt;/strong>
&lt;ul>
&lt;li>A well-documented Python package with modular agent components.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Command-Line Interface (CLI)&lt;/strong>
&lt;ul>
&lt;li>Tools for running end-to-end evidence aggregation pipelines.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Standardized Output Schema&lt;/strong>
&lt;ul>
&lt;li>Machine-readable evidence summaries suitable for downstream modeling.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Example Notebooks and Benchmarks&lt;/strong>
&lt;ul>
&lt;li>Demonstrations of usage and performance on real-world target identification tasks.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Documentation&lt;/strong>
&lt;ul>
&lt;li>Installation guides, extension tutorials, and developer documentation.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ol>
&lt;hr>
&lt;h3 id="impact">&lt;strong>Impact&lt;/strong>&lt;/h3>
&lt;p>Agent4Target provides a practical bridge between AI agents and real-world drug discovery workflows. By emphasizing structured evidence aggregation, reproducibility, and interpretability, this project enables researchers to systematically reason about therapeutic targets rather than relying on opaque, end-to-end models. The resulting toolkit can serve as a foundation for future work in AI-assisted drug discovery, weak supervision, and biomedical knowledge integration.&lt;/p></description></item><item><title>HistoMoE: A Histology-Guided Mixture-of-Experts Framework for Gene Expression Prediction</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre26/uci/histomoe/</link><pubDate>Tue, 20 Jan 2026 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre26/uci/histomoe/</guid><description>&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> computational pathology, spatial transcriptomics, gene expression prediction, mixture-of-experts, multimodal learning&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong>
&lt;ul>
&lt;li>&lt;strong>Programming Languages:&lt;/strong> Python; experience with PyTorch preferred&lt;/li>
&lt;li>&lt;strong>Machine Learning:&lt;/strong> CNNs / vision encoders, mixture-of-experts, multimodal representation learning&lt;/li>
&lt;li>&lt;strong>Data Analysis:&lt;/strong> handling large-scale histology image patches and gene expression matrices&lt;/li>
&lt;li>&lt;strong>Bioinformatics Knowledge (preferred):&lt;/strong> familiarity with spatial transcriptomics or scRNA-seq data&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Advanced&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/ziheng-duan/">Ziheng Duan&lt;/a> (contact person)&lt;/li>
&lt;/ul>
&lt;h3 id="project-idea-description">&lt;strong>Project Idea Description&lt;/strong>&lt;/h3>
&lt;p>Histology imaging is one of the most widely available data modalities in biomedical research and clinical practice, capturing rich morphological information about tissues and disease states. In parallel, spatial transcriptomics (ST) technologies provide spatially resolved gene expression measurements, enabling unprecedented insights into tissue organization and cellular heterogeneity. However, the high cost and limited accessibility of ST experiments remain a major barrier to their widespread adoption.&lt;/p>
&lt;p>Predicting gene expression directly from histology images offers a promising alternative, enabling molecular-level inference from routinely collected pathology data. Existing approaches typically rely on a single global model that maps image embeddings to gene expression profiles. While effective to some extent, these models struggle to capture the strong organ-, tissue-, and cancer-specific heterogeneity that underlies gene expression patterns.&lt;/p>
&lt;p>This project proposes &lt;strong>HistoMoE&lt;/strong>, a &lt;strong>histology-guided mixture-of-experts (MoE) framework&lt;/strong> that explicitly models biological heterogeneity by learning &lt;strong>specialized expert models&lt;/strong> for different cancer types or organs, and dynamically routing histology image patches to the most relevant experts.&lt;/p>
&lt;h3 id="key-idea-and-technical-approach">&lt;strong>Key Idea and Technical Approach&lt;/strong>&lt;/h3>
&lt;p>As illustrated in the figure above, HistoMoE integrates multiple data modalities and learning components:&lt;/p>
&lt;ol>
&lt;li>
&lt;p>&lt;strong>Vision Encoder&lt;/strong>&lt;br>
Histology image patches are encoded into high-dimensional visual representations using a convolutional or transformer-based vision backbone.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Text / Metadata Encoder&lt;/strong>&lt;br>
Sample-level metadata (e.g., tissue type, organ, disease context) is encoded using a lightweight text or embedding model.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Gating Network&lt;/strong>&lt;br>
A gating network jointly considers image and metadata embeddings to infer routing weights over multiple &lt;strong>cancer- or organ-specific expert models&lt;/strong>.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Expert Models&lt;/strong>&lt;br>
Each expert specializes in modeling gene expression patterns for a specific biological context (e.g., CCRCC, COAD, LUAD), producing patch-level gene expression predictions.&lt;/p>
&lt;/li>
&lt;/ol>
&lt;p>By explicitly modeling biological structure through expert specialization, HistoMoE aims to improve both &lt;strong>prediction accuracy&lt;/strong> and &lt;strong>interpretability&lt;/strong>, allowing researchers to understand which biological experts drive each prediction.&lt;/p>
&lt;h3 id="project-objectives">&lt;strong>Project Objectives&lt;/strong>&lt;/h3>
&lt;ol>
&lt;li>&lt;strong>Design and Implement the HistoMoE Framework&lt;/strong>
&lt;ul>
&lt;li>Build a modular MoE architecture with pluggable vision encoders, gating networks, and expert models.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Multimodal Routing and Expert Specialization&lt;/strong>
&lt;ul>
&lt;li>Explore how image features and metadata jointly inform expert selection.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Benchmarking and Evaluation&lt;/strong>
&lt;ul>
&lt;li>Compare HistoMoE against single-model baselines on multiple cancer and organ-specific spatial transcriptomics datasets.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Interpretability Analysis&lt;/strong>
&lt;ul>
&lt;li>Analyze expert routing behavior to reveal biologically meaningful patterns.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ol>
&lt;h3 id="project-deliverables">&lt;strong>Project Deliverables&lt;/strong>&lt;/h3>
&lt;ol>
&lt;li>&lt;strong>Open-Source HistoMoE Codebase&lt;/strong>
&lt;ul>
&lt;li>Well-documented Python implementation with training, evaluation, and visualization tools.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Benchmark Results&lt;/strong>
&lt;ul>
&lt;li>Quantitative comparisons demonstrating improvements over non-expert baselines.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Visualization and Analysis Tools&lt;/strong>
&lt;ul>
&lt;li>Tools for inspecting expert usage, routing weights, and gene-level predictions.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Documentation and Tutorials&lt;/strong>
&lt;ul>
&lt;li>Clear instructions and examples to enable adoption by the research community.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ol>
&lt;h3 id="impact">&lt;strong>Impact&lt;/strong>&lt;/h3>
&lt;p>HistoMoE introduces an expert-system perspective to histology-based gene expression prediction, bridging morphological and molecular representations through biologically informed specialization. By combining multimodal learning with mixture-of-experts modeling, this project advances the interpretability and accuracy of computational pathology methods and contributes toward scalable, cost-effective alternatives to spatial transcriptomics experiments.&lt;/p></description></item><item><title>StaR: A Stability-Aware Representation Learning Framework for Spatial Domain Identification</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre26/uci/star/</link><pubDate>Tue, 20 Jan 2026 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre26/uci/star/</guid><description>&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> spatial transcriptomics, spatial domain identification, representation learning, model robustness&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong>
&lt;ul>
&lt;li>&lt;strong>Programming Languages:&lt;/strong> Python; PyTorch experience preferred&lt;/li>
&lt;li>&lt;strong>Machine Learning:&lt;/strong> representation learning, clustering, robustness and stability analysis&lt;/li>
&lt;li>&lt;strong>Data Analysis:&lt;/strong> spatial transcriptomics preprocessing and evaluation (ARI, clustering metrics)&lt;/li>
&lt;li>&lt;strong>Bioinformatics Knowledge (preferred):&lt;/strong> familiarity with spatial transcriptomics or scRNA-seq data&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Advanced&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/ziheng-duan/">Ziheng Duan&lt;/a> (contact person)&lt;/li>
&lt;/ul>
&lt;h3 id="project-idea-description">&lt;strong>Project Idea Description&lt;/strong>&lt;/h3>
&lt;p>Spatial domain identification is a fundamental task in spatial transcriptomics (ST), aiming to partition tissue sections into biologically meaningful regions based on spatially resolved gene expression profiles. These spatial domains often correspond to distinct anatomical structures, cellular compositions, or functional microenvironments, and serve as a critical foundation for downstream biological analysis.&lt;/p>
&lt;p>Despite rapid methodological progress, &lt;strong>most existing spatial domain identification methods are highly sensitive to random initialization&lt;/strong>. In practice, simply changing the random seed can lead to substantially different clustering results and large performance fluctuations, even when using identical hyperparameters and datasets. This instability severely undermines the reliability, reproducibility, and interpretability of spatial transcriptomics analyses.&lt;/p>
&lt;h3 id="problem-seed-sensitivity-and-unstable-representations">&lt;strong>Problem: Seed Sensitivity and Unstable Representations&lt;/strong>&lt;/h3>
&lt;p>Empirical evidence shows that state-of-the-art spatial domain identification models can exhibit substantial performance variance across random seeds. For example, the Adjusted Rand Index (ARI) may vary from relatively strong performance (e.g., ARI ≈ 0.65) to noticeably degraded yet still reasonable outcomes (e.g., ARI ≈ 0.50) solely due to different random initializations.&lt;/p>
&lt;p>By systematically evaluating models across &lt;strong>hundreds to thousands of random seeds&lt;/strong>, we observe that:&lt;/p>
&lt;ul>
&lt;li>Model performance landscapes are highly &lt;strong>rugged&lt;/strong>, with sharp cliffs and isolated high-performing regions.&lt;/li>
&lt;li>Standard training objectives implicitly favor brittle representations that are not robust to small perturbations in initialization or optimization trajectories.&lt;/li>
&lt;/ul>
&lt;p>These observations suggest that instability is not a peripheral issue, but rather a &lt;strong>structural limitation of current representation learning approaches&lt;/strong> for spatial transcriptomics.&lt;/p>
&lt;h3 id="proposed-solution-star">&lt;strong>Proposed Solution: StaR&lt;/strong>&lt;/h3>
&lt;p>This project proposes &lt;strong>StaR&lt;/strong>, a &lt;strong>Stability-Aware Representation Learning framework&lt;/strong> designed to explicitly address seed sensitivity in spatial domain identification.&lt;/p>
&lt;p>The core idea of StaR is to &lt;strong>learn representations that are robust to perturbations in model parameters and training dynamics&lt;/strong>, rather than optimizing solely for peak performance under a single random seed. Concretely, StaR introduces controlled noise or perturbations into the training process and encourages consistency across multiple perturbed model instances, guiding the model toward flatter and more stable regions of the parameter space.&lt;/p>
&lt;p>By prioritizing stability during representation learning, StaR aims to produce embeddings that:&lt;/p>
&lt;ul>
&lt;li>Yield consistent spatial domain assignments across random seeds&lt;/li>
&lt;li>Maintain competitive or improved clustering accuracy&lt;/li>
&lt;li>Better reflect underlying biological structure&lt;/li>
&lt;/ul>
&lt;h3 id="project-objectives">&lt;strong>Project Objectives&lt;/strong>&lt;/h3>
&lt;ol>
&lt;li>&lt;strong>Characterize Instability in Existing Methods&lt;/strong>
&lt;ul>
&lt;li>Systematically quantify seed sensitivity across popular spatial domain identification models.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Develop Stability-Aware Training Objectives&lt;/strong>
&lt;ul>
&lt;li>Design perturbation-based or consistency-driven losses that encourage robust representations.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Integrate StaR into Existing Pipelines&lt;/strong>
&lt;ul>
&lt;li>Apply StaR to widely used spatial transcriptomics workflows with minimal architectural changes.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Evaluation and Benchmarking&lt;/strong>
&lt;ul>
&lt;li>Evaluate StaR using clustering metrics (e.g., ARI) and stability metrics across multiple datasets and random seeds.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Biological Validation&lt;/strong>
&lt;ul>
&lt;li>Assess whether stability-aware representations preserve biologically meaningful spatial patterns.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ol>
&lt;h3 id="project-deliverables">&lt;strong>Project Deliverables&lt;/strong>&lt;/h3>
&lt;ol>
&lt;li>&lt;strong>StaR Framework Implementation&lt;/strong>
&lt;ul>
&lt;li>An open-source Python implementation compatible with common spatial transcriptomics toolchains.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Stability Benchmarks&lt;/strong>
&lt;ul>
&lt;li>Comprehensive evaluations demonstrating reduced performance variance across seeds.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Visualization Tools&lt;/strong>
&lt;ul>
&lt;li>Tools for visualizing performance landscapes, stability surfaces, and spatial domain consistency.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Documentation and Tutorials&lt;/strong>
&lt;ul>
&lt;li>Clear examples enabling researchers to adopt StaR in their own analyses.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ol>
&lt;h3 id="impact">&lt;strong>Impact&lt;/strong>&lt;/h3>
&lt;p>StaR addresses a critical yet underexplored challenge in spatial transcriptomics: &lt;strong>model instability and poor reproducibility&lt;/strong>. By shifting the focus from single-run performance to stability-aware representation learning, this project improves the reliability and trustworthiness of spatial domain identification methods. StaR has the potential to become a foundational component in robust spatial transcriptomics pipelines and to inspire broader adoption of stability-aware principles in biological representation learning.&lt;/p></description></item><item><title>MedJEPA: Self-Supervised Medical Image Representation Learning with JEPA</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre26/nelbl/medjepa/</link><pubDate>Mon, 19 Jan 2026 10:15:56 -0700</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre26/nelbl/medjepa/</guid><description>&lt;h3 id="project-description">Project Description&lt;/h3>
&lt;p>[MedJEPA] Medical image analysis is fundamental to modern healthcare, enabling disease diagnosis, treatment planning, and patient monitoring across diverse clinical applications. In radiology and pathology, deep learning models support automated detection of abnormalities, tumor segmentation, and diagnostic assistance. Medical imaging modalities including X-rays, CT scans, MRI, ultrasound, and histopathology slides generate vast amounts of unlabeled data that could benefit from self-supervised representation learning. Clinical applications include cancer detection and staging, cardiovascular disease assessment, neurological disorder diagnosis, and infectious disease screening. In drug discovery and clinical research, analyzing medical images helps evaluate treatment efficacy, predict patient outcomes, and identify biomarkers for disease progression. Telemedicine and point-of-care diagnostics benefit from AI-powered image analysis that extends expert-level interpretation to underserved regions. However, medical imaging faces unique challenges: limited labeled datasets due to expensive expert annotation, patient privacy concerns restricting data sharing, domain shift across different imaging equipment and protocols, and the need for models that generalize across hospitals and populations.
Traditional medical image analysis relies heavily on supervised learning with manually annotated labels, creating bottlenecks due to the scarcity and cost of expert annotations. Existing self-supervised methods applied to medical imaging often employ complex training procedures with numerous heuristics—momentum encoders, stop-gradients, teacher-student architectures, and carefully tuned augmentation strategies—that may not translate well across different medical imaging modalities and clinical contexts. These approaches struggle with domain-specific challenges such as subtle pathological features, high-resolution images, 3D volumetric data, and the need for interpretable representations that clinicians can trust. To address these challenges, we propose MedicalJEPA: Self-Supervised Medical Image Representation Learning with Joint-Embedding Predictive Architecture, which leverages the theoretically grounded LeJEPA framework for 2D medical images and V-JEPA principles for medical video and volumetric data, creating a unified, scalable, and heuristics-free approach specifically tailored for medical imaging applications.
By utilizing the principled JEPA frameworks with objectives like Sketched Isotropic Gaussian Regularization (SIGReg), MedJEPA eliminates complex training heuristics while learning clinically meaningful representations from unlabeled medical images. Unlike conventional self-supervised methods that require extensive hyperparameter tuning and may not generalize across medical imaging modalities, MedicalJEPA provides a clean, theoretically motivated framework with minimal hyperparameters that adapts to diverse medical imaging contexts—from chest X-rays to histopathology slides to cardiac MRI sequences. The learned representations can support downstream tasks including disease classification, lesion detection, organ segmentation, and survival prediction, while requiring significantly fewer labeled examples for fine-tuning. This approach democratizes access to state-of-the-art medical AI by enabling effective learning from the vast amounts of unlabeled medical imaging data available in hospital archives, addressing the annotation bottleneck that has limited progress in medical AI.&lt;/p>
&lt;h3 id="project-objectives">Project Objectives&lt;/h3>
&lt;p>Aligned with the vision of the 2026 Open Source Research Experience (OSRE), this project aims to apply Joint-Embedding Predictive Architecture (JEPA) frameworks to medical image representation learning, addressing the critical challenge of learning from limited labeled medical data. Medical imaging generates enormous amounts of unlabeled data, but supervised learning approaches are bottlenecked by the scarcity and cost of expert annotations. Existing self-supervised methods often rely on complex heuristics that don&amp;rsquo;t generalize well across diverse medical imaging modalities, equipment vendors, and clinical protocols.
This project will leverage the theoretically grounded LeJEPA framework for 2D medical images (X-rays, histopathology slides, fundus images) and V-JEPA principles for temporal and volumetric medical data (cardiac MRI sequences, CT scans, surgical videos). The core challenge lies in adapting these heuristics-free, stable frameworks to medical imaging&amp;rsquo;s unique characteristics: subtle pathological features requiring fine-grained representations, high-resolution images demanding efficient processing, domain shift across hospitals and equipment, and the need for interpretable features that support clinical decision-making. The learned representations will be evaluated on diverse downstream clinical tasks including disease classification, lesion detection, organ segmentation, and prognosis prediction, with emphasis on few-shot learning scenarios that reflect real-world annotation constraints. Below is an outline of the methodologies and models that will be developed in this project.&lt;/p>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>Step 1: Medical Data Preparation&lt;/strong>:
Develop data processing pipelines for diverse medical imaging modalities, implementing DICOM/NIfTI parsing, standardized preprocessing, and efficient data loading for self-supervised pre-training.
Prepare 2D medical image datasets:
Chest X-rays: ChestX-ray14, MIMIC-CXR, CheXpert for lung disease detection
Histopathology: Camelyon16/17 (breast cancer), PCam (patch-level classification)
Retinal imaging: EyePACS, APTOS (diabetic retinopathy), Messidor
Dermatology: HAM10000, ISIC (skin lesion classification)
Prepare 3D volumetric and temporal medical data:
CT scans: LIDC-IDRI (lung nodules), Medical Segmentation Decathlon datasets
MRI sequences: BraTS (brain tumors), ACDC (cardiac MRI), UK Biobank cardiac videos
Medical video: Surgical procedure videos, endoscopy recordings, ultrasound sequences
Implement medical imaging-specific preprocessing: intensity normalization, resolution standardization, handling of multi-channel medical images (different MRI sequences, RGB histopathology), and privacy-preserving anonymization.
Design masking strategies appropriate for medical imaging: spatial masking for 2D images, volumetric masking for 3D scans, temporal masking for sequences, and anatomy-aware masking that respects organ boundaries.
Create data loaders supporting high-resolution medical images, 3D volumes, and multi-modal inputs (e.g., multiple MRI sequences).&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Step 2: JEPA Model Implementation for Medical Imaging&lt;/strong>:
Implement LeJEPA for 2D medical images:
Adapt joint-embedding predictive architecture for medical image characteristics (high resolution, subtle features, domain-specific patterns)
Apply Sketched Isotropic Gaussian Regularization (SIGReg) to learn clinically meaningful embedding distributions
Maintain single trade-off hyperparameter and heuristics-free training for reproducibility across medical imaging centers
Support various encoder architectures: Vision Transformers for global context, ConvNets for local features, hybrid approaches
Extend to V-JEPA for medical video and volumetric data:
Spatiotemporal encoding for cardiac MRI sequences, surgical videos, and time-series medical imaging
Temporal prediction objectives for understanding disease progression and treatment response
3D volume processing for CT and MRI scans with efficient memory management
Multi-slice and multi-sequence learning for comprehensive medical imaging contexts
Develop medical domain-specific enhancements:
Multi-scale representation learning to capture both fine-grained pathological details and global anatomical context
Interpretability mechanisms: attention visualization, feature attribution, and embedding space analysis for clinical validation
Robustness to domain shift: training strategies that generalize across different scanners, protocols, and institutions
Privacy-preserving training considerations compatible with medical data regulations (HIPAA, GDPR)
Implement efficient training infrastructure:
Support for distributed training across multiple GPUs for large medical imaging datasets
Memory-efficient processing of high-resolution images and 3D volumes
Checkpoint management and model versioning for clinical deployment pipelines
Minimal-code implementation (≈50-100 lines) demonstrating framework simplicity&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Step 3: Evaluation &amp;amp; Safety Validation&lt;/strong>: :
Disease Classification Tasks:
Multi-label chest X-ray classification: 14 pathology classes on ChestX-ray14, MIMIC-CXR
Diabetic retinopathy grading: 5-class classification on EyePACS, APTOS
Skin lesion classification: 7-class classification on HAM10000
Brain tumor classification: glioma grading on BraTS dataset
Evaluate with linear probing, few-shot learning (5-shot, 10-shot), and full fine-tuning
Lesion Detection and Segmentation:
Lung nodule detection on LIDC-IDRI dataset
Tumor segmentation on Medical Segmentation Decathlon tasks
Polyp detection in colonoscopy videos
Cardiac structure segmentation in MRI sequences
Clinical Prediction Tasks:
Survival prediction from histopathology slides
Disease progression prediction from longitudinal imaging
Treatment response assessment from pre/post imaging pairs
Few-Shot and Low-Data Regime Evaluation:
Systematic evaluation with 1%, 5%, 10%, 25%, 50% of labeled training data
Comparison against supervised baselines and ImageNet pre-training
Analysis of annotation efficiency: performance vs. number of labeled examples required&lt;/p>
&lt;/li>
&lt;/ul>
&lt;h3 id="project-deliverables">Project Deliverables&lt;/h3>
&lt;p>This project will deliver three components: software implementation, clinical evaluation, and practical deployment resources. The software implementing MedicalJEPA will be hosted on GitHub as an open-access repository with modular code supporting multiple medical imaging modalities (2D images, 3D volumes, videos), pre-trained model checkpoints on major medical imaging datasets (chest X-rays, histopathology, MRI), training and evaluation scripts with medical imaging-specific preprocessing pipelines, privacy-preserving training implementations compatible with clinical data regulations, and comprehensive documentation including tutorials for medical AI researchers and clinicians. The evaluation results will include benchmarks on 10+ medical imaging datasets across diverse modalities and clinical tasks, few-shot learning analysis demonstrating annotation efficiency gains, cross-institutional validation studies showing robustness to domain shift, interpretability visualizations enabling clinical validation of learned representations, and detailed comparisons against supervised baselines and existing medical self-supervised methods. .&lt;/p>
&lt;h3 id="neurohealth">NeuroHealth&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: Self-Supervised Medical Image Representation Learning with JEPA&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: Proficiency in Python, Pytorch, Github, JEPA&lt;/li>
&lt;li>&lt;strong>Difficulty&lt;/strong>: Difficult&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong>: Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentor&lt;/strong>: &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/bin-dong/">Bin Dong&lt;/a>, &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/linsey-pang/">Linsey Pang&lt;/a>&lt;/li>
&lt;/ul>
&lt;h3 id="references">References:&lt;/h3>
&lt;ul>
&lt;li>LeJEPA: Provable and Scalable Self-Supervised Learning Without the Heuristics - Randall Balestriero and Yann LeCun, arXiv 2024&lt;/li>
&lt;li>Revisiting Feature Prediction for Learning Visual Representations from Video (V-JEPA) - Adrien Bardes et al., arXiv 2024&lt;/li>
&lt;li>Self-Supervised Learning from Images with a Joint-Embedding Predictive Architecture - Mahmoud Assran et al., CVPR 2023 (I-JEPA)&lt;/li>
&lt;li>ChestX-ray14: Hospital-Scale Chest X-Ray Database - &lt;a href="https://nihcc.app.box.com/v/ChestXray-NIHCC" target="_blank" rel="noopener">https://nihcc.app.box.com/v/ChestXray-NIHCC&lt;/a>&lt;/li>
&lt;li>Medical Segmentation Decathlon - &lt;a href="http://medicaldecathlon.com/" target="_blank" rel="noopener">http://medicaldecathlon.com/&lt;/a>&lt;/li>
&lt;li>MIMIC-CXR Database - &lt;a href="https://physionet.org/content/mimic-cxr/" target="_blank" rel="noopener">https://physionet.org/content/mimic-cxr/&lt;/a>&lt;/li>
&lt;li>The Cancer Imaging Archive (TCIA) - &lt;a href="https://www.cancerimagingarchive.net/" target="_blank" rel="noopener">https://www.cancerimagingarchive.net/&lt;/a>&lt;/li>
&lt;li>UK Biobank Imaging Study - &lt;a href="https://www.ukbiobank.ac.uk/enable-your-research/about-our-data/imaging-data" target="_blank" rel="noopener">https://www.ukbiobank.ac.uk/enable-your-research/about-our-data/imaging-data&lt;/a>&lt;/li>
&lt;/ul></description></item><item><title>NeuroHealth: AI-Powered Health Assistant</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre26/nelbl/neurohealth/</link><pubDate>Mon, 19 Jan 2026 10:15:56 -0700</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre26/nelbl/neurohealth/</guid><description>&lt;h3 id="project-description">Project Description&lt;/h3>
&lt;p>[NeuroHealth] Intelligent health assistance systems are increasingly essential for improving healthcare accessibility, patient engagement, and clinical decision support. In primary care and preventive medicine, AI assistants help users understand symptoms, schedule appropriate appointments, and receive preliminary health guidance. Telemedicine applications include triage support, appointment scheduling optimization, and patient education based on health inquiries. In chronic disease management, these systems provide medication reminders, lifestyle recommendations, and timely alerts for medical follow-ups. Healthcare navigation applications include finding appropriate specialists, understanding treatment options, and coordinating care across multiple providers. In wellness and preventive care, intelligent assistants enhance health literacy by delivering personalized health information, screening recommendations, and proactive health management strategies. By leveraging natural language understanding and medical knowledge integration, these systems enhance healthcare access, reduce unnecessary emergency visits, and empower users to make informed health decisions across diverse populations.
Traditional health information systems often provide generic responses that fail to account for individual health contexts, medical history, and personal circumstances. Existing symptom checkers and health chatbots primarily rely on rule-based logic or simple decision trees, limiting their ability to understand nuanced health inquiries, reason about complex symptom patterns, or provide contextually appropriate guidance. These systems struggle with interpreting ambiguous descriptions, adapting to users&amp;rsquo; health literacy levels, and generating personalized recommendations that account for individual medical constraints and preferences. To address these challenges, we propose NeuroHealth: AI-Powered Health Assistant, which leverages Large Language Models (LLMs) to create an intelligent conversational agent that synthesizes user health inquiries, symptom descriptions, and contextual information into actionable, personalized health guidance and appointment recommendations.
By integrating LLM-based medical reasoning with structured clinical knowledge bases, NeuroHealth enhances symptom interpretation, appointment routing, and health education delivery. Unlike conventional systems that provide static responses from predetermined templates, NeuroHealth dynamically understands user intent, asks clarifying questions, assesses urgency levels, and generates appropriate recommendations—whether scheduling a doctor appointment, suggesting self-care measures, or directing users to emergency services. This fusion of LLM intelligence with validated medical knowledge enables a more accessible, adaptive, and helpful health assistance platform, bridging the gap between users seeking health information and appropriate medical care.&lt;/p>
&lt;h3 id="project-objectives">Project Objectives&lt;/h3>
&lt;p>Aligned with the vision of the 2026 Open Source Research Experience (OSRE), this project aims to develop an AI-Powered Health Assistant (NeuroHealth) to improve healthcare accessibility and patient engagement through intelligent conversational guidance. Healthcare systems face significant challenges in providing timely, personalized health information and connecting patients with appropriate care resources. Traditional symptom checkers and health information systems often deliver generic, rule-based responses that fail to account for individual contexts and struggle with natural language understanding.
To address these limitations, this project will leverage Large Language Models (LLMs) to create an intelligent health assistant that understands user health inquiries, interprets symptom descriptions, assesses urgency, and provides personalized recommendations including doctor appointment suggestions, self-care guidance, and healthcare navigation support. The core challenge lies in designing NeuroHealth as a safe, accurate, and user-friendly system capable of natural conversation, medical knowledge retrieval, and appropriate response generation while maintaining clinical safety guardrails. Unlike conventional health chatbots that follow rigid conversation flows, NeuroHealth will reason over user inputs, ask clarifying questions, and dynamically adapt responses based on context, resulting in more helpful, accurate, and appropriate health assistance. Below is an outline of the methodologies and models that will be developed in this project.&lt;/p>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>Step 1: Data Collection &amp;amp; Knowledge Base Construction&lt;/strong>:
Develop a comprehensive medical knowledge base integrating validated health information sources, symptom databases, condition descriptions, and appointment routing guidelines.
Collect and curate conversational health inquiry datasets from public medical Q&amp;amp;A forums, symptom checker logs, and healthcare chatbot interactions to create training and evaluation data.
Design structured representations for symptoms, conditions, urgency levels, and appointment recommendations to enable effective retrieval and reasoning.
Extract common health inquiry patterns, symptom descriptions, and user intent categories to inform conversation flow design.
Data sources can include public medical knowledge bases such as MedlinePlus, Mayo Clinic health information, clinical practice guidelines, and synthetic patient inquiry scenarios based on common healthcare use cases.
Implement data validation mechanisms to ensure medical accuracy and clinical safety compliance.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Step 2: Model Development&lt;/strong>:
Design and implement an LLM-based conversational health assistant that integrates medical knowledge retrieval with natural language understanding and generation.
Develop a Retrieval-Augmented Generation (RAG) architecture that grounds LLM responses in validated medical information sources, reducing hallucination risks and ensuring factual accuracy.
Create prompt engineering strategies and reasoning frameworks that enable the system to: interpret symptom descriptions, assess urgency levels, ask appropriate clarifying questions, and generate personalized health guidance.
Implement a multi-component architecture including: intent recognition, symptom extraction, urgency assessment, appointment recommendation generation, and response formatting modules.
Develop clinical safety guardrails that detect high-risk scenarios requiring immediate medical attention and provide appropriate emergency guidance.
Design conversation management strategies that maintain context across multi-turn dialogues and adapt to users&amp;rsquo; health literacy levels.
The baseline architecture can leverage state-of-the-art models such as GPT-4, Claude, or open-source alternatives like Llama, Qwen, combined with medical knowledge retrieval systems.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Step 3: Evaluation &amp;amp; Safety Validation&lt;/strong>: :
Benchmark NeuroHealth against existing symptom checkers and health chatbots, evaluating on metrics including response accuracy, appropriateness of appointment recommendations, urgency assessment precision, and user satisfaction.
Conduct human evaluation studies with healthcare professionals to assess clinical safety, response quality, and appropriateness of medical guidance.
Perform adversarial testing to identify potential failure modes, unsafe responses, or inappropriate recommendations under edge cases.
Conduct ablation studies to analyze the impact of retrieval-augmented generation, safety guardrails, and conversation management strategies on system performance.
Evaluate system performance across diverse health inquiry types including acute symptoms, chronic condition management, preventive care questions, and healthcare navigation requests.
Assess response quality across different user demographics and health literacy levels to ensure equitable access.
Optimize inference efficiency and response latency for real-time conversational interaction across web and mobile platforms.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;h3 id="project-deliverables">Project Deliverables&lt;/h3>
&lt;p>This project will deliver three components: model development, evaluation and validation, and interactive demonstration. The software implementing the NeuroHealth system will be hosted on GitHub as an open-access repository with comprehensive documentation, deployment guides, and API specifications. The evaluation results, including benchmark comparisons against existing systems, clinical safety assessments, and user study findings, will be published alongside the GitHub repository. An interactive demo showcasing the conversational interface, symptom interpretation capabilities, and appointment recommendation generation will be provided to illustrate real-world application scenarios.&lt;/p>
&lt;h3 id="neurohealth">NeuroHealth&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: AI-Powered Health Assistant&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: Proficiency in Python, Github, LLM&lt;/li>
&lt;li>&lt;strong>Difficulty&lt;/strong>: Difficult&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong>: Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentor&lt;/strong>: &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/linsey-pang/">Linsey Pang&lt;/a>, &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/bin-dong/">Bin Dong&lt;/a>&lt;/li>
&lt;/ul>
&lt;h3 id="references">References:&lt;/h3>
&lt;ul>
&lt;li>Large Language Models in Healthcare - Singhal et al., Nature 2023&lt;/li>
&lt;li>Med-PaLM: Large Language Models for Medical Question Answering - Singhal et al., arXiv 2022&lt;/li>
&lt;li>Capabilities of GPT-4 on Medical Challenge Problems - Nori et al., arXiv 2023&lt;/li>
&lt;li>MedlinePlus Medical Encyclopedia - &lt;a href="https://medlineplus.gov/" target="_blank" rel="noopener">https://medlineplus.gov/&lt;/a>&lt;/li>
&lt;li>Clinical Practice Guidelines Database - &lt;a href="https://www.guidelines.gov/" target="_blank" rel="noopener">https://www.guidelines.gov/&lt;/a>&lt;/li>
&lt;/ul></description></item><item><title>LMS Toolkit</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre26/ucsc/lms-toolkit/</link><pubDate>Tue, 13 Jan 2026 13:00:00 -0800</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre26/ucsc/lms-toolkit/</guid><description>&lt;p>The &lt;a href="https://github.com/edulinq/lms-toolkit" target="_blank" rel="noopener">EduLinq LMS Toolkit&lt;/a> is a suite of tools used by several courses at UCSC
to interact with LMS&amp;rsquo;s (e.g. Canvas) from the command line or Python.
A &lt;a href="https://en.wikipedia.org/wiki/Learning_management_system" target="_blank" rel="noopener">Learning Management System&lt;/a> (LMS) is a system that institutions use to manage courses, assignments, students, and grades.
The most popular LMSs are
&lt;a href="https://en.wikipedia.org/wiki/Instructure#Canvas" target="_blank" rel="noopener">Canvas&lt;/a>,
&lt;a href="https://en.wikipedia.org/wiki/Blackboard_Learn" target="_blank" rel="noopener">Blackboard&lt;/a>,
&lt;a href="https://en.wikipedia.org/wiki/Moodle" target="_blank" rel="noopener">Moodle&lt;/a>,
and &lt;a href="https://en.wikipedia.org/wiki/D2L#Brightspace" target="_blank" rel="noopener">Brightspace&lt;/a>.
These tools can be very helpful, especially from an administrative standpoint, but can be hard to interact with.
They can be especially difficult when instructors and TAs want to do something that is not explicitly supported by their built-in GUIs
(e.g., when an instructor wants to use a special grading policy).
The LMS Toolkit project is an effort to create a single suite of command-line tools (along with a Python interface)
to connect to all the above mentioned LMSs in a simple and uniform way.
So, not only can instructors and TAs easily access the modify the data held in an LMS (like a student&amp;rsquo;s grades),
but they can also do it the same way on any LMS.
The &lt;a href="https://linqs.org" target="_blank" rel="noopener">LINQS Lab&lt;/a> has made many contributions to the maintain and improve the Quiz Composer.&lt;/p>
&lt;p>Currently, the LMS Toolkit supports Canvas, Moodle, and Blackboard.
But, the degree of support for each LMS varies.&lt;/p>
&lt;p>All students interested in LINQS projects for OSRE/GSoC 2026 should fill out &lt;a href="https://forms.gle/Mr4YR3N35pWDb4uz7" target="_blank" rel="noopener">this form&lt;/a>.
Towards the end of the application window, we will contact those who we believe to be a good fit for a LINQS project.
The form will stop accepting responses once the application window closes.
Do not post on any of the project repositories about OSRE/GSoC
(e.g., comment on an issue that you want to tackle it as a part of OSRE/GSoC 2026).
Remember, these are active repositories that were not created for OSRE/GSoC.&lt;/p>
&lt;h3 id="advanced-lms-support">Advanced LMS Support&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> &lt;code>Backend&lt;/code> &lt;code>Teaching Tools&lt;/code> &lt;code>API&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> software development, backend, rest api, data munging, http request inspection, python&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Moderate&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Medium or Large (175 or 350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="mailto:linqs.osre26@gmail.com">Eriq Augustine&lt;/a>, &lt;a href="mailto:linqs.osre26@gmail.com">Batuhan Salih&lt;/a>, &lt;a href="mailto:linqs.osre26@gmail.com">Lise Getoor&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>The LMS Toolkit already has basic read-write support for many core pieces of LMS functionality (e.g., working with grades and assignments).
However, there are still many more features that can be supported such as
&lt;a href="https://github.com/edulinq/lms-toolkit/issues/17" target="_blank" rel="noopener">group management&lt;/a>,
&lt;a href="https://github.com/edulinq/lms-toolkit/issues/7" target="_blank" rel="noopener">quiz management&lt;/a>,
&lt;a href="https://github.com/edulinq/lms-toolkit/issues/10" target="_blank" rel="noopener">quiz statistics&lt;/a>,
and &lt;a href="https://github.com/edulinq/lms-toolkit/issues/19" target="_blank" rel="noopener">assignment statuses&lt;/a>.&lt;/p>
&lt;p>The task for this project is to choose a set of advanced features
(not limited to those features mentioned above),
design an LMS-agnostic way to support those features,
and implement those features.
The flexibility in the features chosen to implement account for the variable size of this project.&lt;/p>
&lt;p>See Also:&lt;/p>
&lt;ul>
&lt;li>&lt;a href="https://github.com/edulinq/lms-toolkit" target="_blank" rel="noopener">Repository for LMS Toolkit&lt;/a>&lt;/li>
&lt;li>GitHub Issues
&lt;ul>
&lt;li>&lt;a href="https://github.com/edulinq/lms-toolkit/issues/17" target="_blank" rel="noopener">Group Management&lt;/a>,&lt;/li>
&lt;li>&lt;a href="https://github.com/edulinq/lms-toolkit/issues/7" target="_blank" rel="noopener">Quiz Management&lt;/a>,&lt;/li>
&lt;li>&lt;a href="https://github.com/edulinq/lms-toolkit/issues/10" target="_blank" rel="noopener">Quiz Statistics&lt;/a>,&lt;/li>
&lt;li>&lt;a href="https://github.com/edulinq/lms-toolkit/issues/19" target="_blank" rel="noopener">Assignment Statuses&lt;/a>.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h3 id="new-lms-support-brightspace">New LMS Support: Brightspace&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> &lt;code>Backend&lt;/code> &lt;code>Teaching Tools&lt;/code> &lt;code>API&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> software development, backend, rest api, data munging, http request inspection, python&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Challenging&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="mailto:linqs.osre26@gmail.com">Eriq Augustine&lt;/a>, &lt;a href="mailto:linqs.osre26@gmail.com">Batuhan Salih&lt;/a>, &lt;a href="mailto:linqs.osre26@gmail.com">Lise Getoor&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>The goal of the LMS toolkit is to provide a single interface for all LMSs.
&lt;a href="https://en.wikipedia.org/wiki/D2L#Brightspace" target="_blank" rel="noopener">D2L Brightspace&lt;/a> is one of the more popular LMSs.
Naturally, the LMS Toolkit wants to support Brightspace as well.
However, a challenge in supporting Brightspace is that it is not open source (unlike Canvas and Moodle).
Therefore, support and testing on Brightspace may be very challenging.&lt;/p>
&lt;p>The task for this project is to add basic support for the Brightspace LMS.
It is not necessary to support all the same features that are supported for other LMSs,
but at least the core features of score and assignment management should be implemented.
The closed-source nature of Brightspace makes this a challenging and uncertain project.&lt;/p>
&lt;p>See Also:&lt;/p>
&lt;ul>
&lt;li>&lt;a href="https://github.com/edulinq/lms-toolkit" target="_blank" rel="noopener">Repository for LMS Toolkit&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://en.wikipedia.org/wiki/D2L#Brightspace" target="_blank" rel="noopener">Brightspace Wiki Page&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://github.com/edulinq/lms-toolkit/issues/23" target="_blank" rel="noopener">GitHub Issue&lt;/a>&lt;/li>
&lt;/ul></description></item><item><title>Lynx Grader</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre26/ucsc/autograder/</link><pubDate>Tue, 13 Jan 2026 13:00:00 -0800</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre26/ucsc/autograder/</guid><description>&lt;p>The &lt;a href="https://github.com/edulinq/autograder-server" target="_blank" rel="noopener">EduLinq Lynx Grader&lt;/a> (also referred to as &amp;ldquo;autograder&amp;rdquo;) is an open source tool used by several courses at UCSC
to safely and quickly grade programming assignments.
Grading student code is something that may seem simple at first (you just need to run their code!),
but quickly becomes exceeding complex as you get more into the details.
Specifically, grading a student&amp;rsquo;s code securely while providing the &amp;ldquo;last mile&amp;rdquo; service of getting code from students
and sending results to instructors/TAs and the course&amp;rsquo;s LMS (e.g., Canvas) can be very difficult.
The Lynx Grader provides all of this in a free and open source project.
The &lt;a href="https://linqs.org" target="_blank" rel="noopener">LINQS Lab&lt;/a> has made many contributions to the maintain and improve the Lynx Grader.&lt;/p>
&lt;p>As an open source project, there are endless opportunities for development, improvements, and collaboration.
Here, we highlight some specific projects that will work well in the summer mentorship setting.&lt;/p>
&lt;p>All students interested in LINQS projects for OSRE/GSoC 2026 should fill out &lt;a href="https://forms.gle/Mr4YR3N35pWDb4uz7" target="_blank" rel="noopener">this form&lt;/a>.
Towards the end of the application window, we will contact those who we believe to be a good fit for a LINQS project.
The form will stop accepting responses once the application window closes.
Do not post on any of the project repositories about OSRE/GSoC
(e.g., comment on an issue that you want to tackle it as a part of OSRE/GSoC 2026).
Remember, these are active repositories that were not created for OSRE/GSoC.&lt;/p>
&lt;h3 id="llm-detection">LLM Detection&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> &lt;code>AI/ML&lt;/code> &lt;code>LLM&lt;/code> &lt;code>Research&lt;/code> &lt;code>Backend&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> software development, backend, systems, data munging, go, docker&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Challenging&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="mailto:linqs.osre26@gmail.com">Eriq Augustine&lt;/a>, &lt;a href="mailto:linqs.osre26@gmail.com">Fabrice Kurmann&lt;/a>, &lt;a href="mailto:linqs.osre26@gmail.com">Lise Getoor&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>As &lt;a href="https://en.wikipedia.org/wiki/Large_language_model" target="_blank" rel="noopener">Large Language Model (LLM)&lt;/a> tools like ChatGPT become more common and powerful,
instructors need tools to help determine if students are the actual authors of the code they submit.
More classical instances of plagiarism are often discovered by code similarity tools like &lt;a href="https://theory.stanford.edu/~aiken/moss/" target="_blank" rel="noopener">MOSS&lt;/a>.
However these tools are not sufficient for detecting code written not by a student,
but by an AI model like &lt;a href="https://en.wikipedia.org/wiki/ChatGPT" target="_blank" rel="noopener">ChatGPT&lt;/a> or &lt;a href="https://en.wikipedia.org/wiki/GitHub_Copilot" target="_blank" rel="noopener">GitHub Copilot&lt;/a>.&lt;/p>
&lt;p>The task for this project is to create a system that provides a score indicating the system&amp;rsquo;s confidence that a given piece of code was written by an AI tool and not a student.
This will supplement the existing code analysis tools in the Lynx Grader.
There are many approaches to completing this task that will be considered.
A more software development approach can consist of levering exiting systems to create a production-ready system,
whereas a more research approach can consist of creating a novel approach complete with a paper and experiments.&lt;/p>
&lt;p>There has been &lt;a href="https://github.com/anvichip/AI-code-detection-ML/blob/main/experiment/report.md" target="_blank" rel="noopener">previous work on this issue&lt;/a>,
where a student did a survey of existing solutions, collection of initial datasets, and exploratory experiments on possible directions.
This project would build off of this previous work.&lt;/p>
&lt;p>See Also:&lt;/p>
&lt;ul>
&lt;li>&lt;a href="https://github.com/edulinq/autograder-server" target="_blank" rel="noopener">Repository for Lynx Grader Server&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://github.com/edulinq/autograder-server/issues/140" target="_blank" rel="noopener">GitHub Issue&lt;/a>&lt;/li>
&lt;/ul>
&lt;h3 id="code-analysis-gui">Code Analysis GUI&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> &lt;code>Frontend&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> software development, frontend, data munging, js, css, go&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Easy&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Medium or Large (175 or 350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="mailto:linqs.osre26@gmail.com">Eriq Augustine&lt;/a>, &lt;a href="mailto:linqs.osre26@gmail.com">Fabrice Kurmann&lt;/a>, &lt;a href="mailto:linqs.osre26@gmail.com">Lise Getoor&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>The Lynx Grader has existing functionality to analyze the code in a student&amp;rsquo;s submission for malicious content.
Relevant to this project is that the Lynx Grader can run a pairwise similarity analysis against all submitted code.
This is how most existing software plagiarism systems detect offending code.
The existing infrastructure provides detailed statistics on code similarity,
but does not currently have a visual way to display this data.&lt;/p>
&lt;p>The task for this project is to create a web GUI using the Lynx Grader REST API
to display the results of a code analysis.
The size of this project depends on how many of the existing features are going to be supported by the web GUI.&lt;/p>
&lt;p>See Also:&lt;/p>
&lt;ul>
&lt;li>&lt;a href="https://github.com/edulinq/autograder-web" target="_blank" rel="noopener">Repository for Lynx Grader Web GUI&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://github.com/edulinq/autograder-server/issues/142" target="_blank" rel="noopener">GitHub Issue&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://github.com/edulinq/autograder-server/blob/main/internal/model/analysis.go#L78" target="_blank" rel="noopener">Pairwise Code Analysis Type&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://github.com/edulinq/autograder-py/blob/v0.6.16/tests/api/testdata/courses/assignments/analysis/courses_assignments_submissions_analysis_pairwise_wait.json" target="_blank" rel="noopener">Sample API Data&lt;/a>&lt;/li>
&lt;/ul>
&lt;h3 id="web-gui">Web GUI&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> &lt;code>Frontend&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> software development, frontend, js, css&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Easy&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Medium or Large (175 or 350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="mailto:linqs.osre26@gmail.com">Eriq Augustine&lt;/a>, &lt;a href="mailto:linqs.osre26@gmail.com">Fabrice Kurmann&lt;/a>, &lt;a href="mailto:linqs.osre26@gmail.com">Lise Getoor&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>The Lynx Grader contains dozens of &lt;a href="https://github.com/edulinq/autograder-server/blob/main/resources/api.json" target="_blank" rel="noopener">API endpoints&lt;/a>,
most directly representing a piece of functionality exposed to the user.
All of these features are exposed in the &lt;a href="https://github.com/edulinq/autograder-py" target="_blank" rel="noopener">Lynx Grader&amp;rsquo;s Python Interface&lt;/a>.
However, the Python interface is a purely command-line interface.
And although command-line interface are objectively (read: subjectively) the best,
a web GUI would be more accessible to a wider audience.
The autograder already has a &lt;a href="https://github.com/edulinq/autograder-web" target="_blank" rel="noopener">web GUI&lt;/a>,
but it does not cover all the features available in the Lynx Grader.&lt;/p>
&lt;p>The task for this project is to augment the Lynx Grader&amp;rsquo;s web GUI with more features.
Specifically, add support for more tools used to create and administer courses.&lt;/p>
&lt;p>See Also:&lt;/p>
&lt;ul>
&lt;li>&lt;a href="https://github.com/edulinq/autograder-web" target="_blank" rel="noopener">Repository for Lynx Grader Web GUI&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://github.com/edulinq/autograder-server/issues/61" target="_blank" rel="noopener">GitHub Issue&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://github.com/edulinq/autograder-server/blob/main/resources/api.json" target="_blank" rel="noopener">Lynx Grader API Endpoints&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://github.com/edulinq/autograder-py" target="_blank" rel="noopener">Lynx Grader&amp;rsquo;s Python Interface&lt;/a>&lt;/li>
&lt;/ul></description></item><item><title>Quiz Composer</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre26/ucsc/quiz-composer/</link><pubDate>Tue, 13 Jan 2026 13:00:00 -0800</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre26/ucsc/quiz-composer/</guid><description>&lt;p>The &lt;a href="https://github.com/edulinq/quiz-composer" target="_blank" rel="noopener">EduLinq Quiz Composer&lt;/a> (also called the &amp;ldquo;Quiz Generator&amp;rdquo;) is a tool used by several courses at UCSC
to create and maintain platform-agnostic quizzes (including exams and worksheets).
Knowledge assessments like quizzes, exams, and tests are a core part of the learning process for many courses.
However maintaining banks of questions, collaborating on new questions, and converting quizzes to new formats can use up a lot of time,
taking time away from actually working on improving course materials.
The Quiz Composer helps by providing a single text-based format that can be stored in a repository and &amp;ldquo;compiled&amp;rdquo; into many different formats including:
HTML, LaTeX, PDF, Canvas, GradeScope, and QTI.
The &lt;a href="https://linqs.org" target="_blank" rel="noopener">LINQS Lab&lt;/a> has made many contributions to the maintain and improve the Quiz Composer.&lt;/p>
&lt;p>As an open source project, there are endless opportunities for development, improvements, and collaboration.
Here, we highlight some specific projects that will work well in the summer mentorship setting.&lt;/p>
&lt;p>All students interested in LINQS projects for OSRE/GSoC 2026 should fill out &lt;a href="https://forms.gle/Mr4YR3N35pWDb4uz7" target="_blank" rel="noopener">this form&lt;/a>.
Towards the end of the application window, we will contact those who we believe to be a good fit for a LINQS project.
The form will stop accepting responses once the application window closes.
Do not post on any of the project repositories about OSRE/GSoC
(e.g., comment on an issue that you want to tackle it as a part of OSRE/GSoC 2026).
Remember, these are active repositories that were not created for OSRE/GSoC.&lt;/p>
&lt;h3 id="canvas-import">Canvas Import&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> &lt;code>Backend&lt;/code> &lt;code>Teaching Tools&lt;/code> &lt;code>API&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> software development, backend, rest api, data munging, http request inspection, python&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Moderate&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Medium (175 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="mailto:linqs.osre26@gmail.com">Eriq Augustine&lt;/a>, &lt;a href="mailto:linqs.osre26@gmail.com">Lucas Ellenberger&lt;/a>, &lt;a href="mailto:linqs.osre26@gmail.com">Lise Getoor&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>The Quiz Composer houses quizzes and quiz questions in a simple and unambiguous format based
on &lt;a href="https://en.wikipedia.org/wiki/JSON" target="_blank" rel="noopener">JSON&lt;/a> and &lt;a href="https://en.wikipedia.org/wiki/Markdown" target="_blank" rel="noopener">Markdown&lt;/a> (specifically, the &lt;a href="https://commonmark.org" target="_blank" rel="noopener">CommonMark specification&lt;/a>).
This allows the Quiz Composer to unambiguously create versions of the same quiz in many different formats.
However, creating a quiz in the Quiz Composer format can be a daunting task for those not familiar with JSON or Markdown.
Instead, it would be easier for people to import quizzes from another format into the Quiz Composer format,
and then edit it as they see fit.
Unfortunately not all other quiz formats, namely Canvas in this case, are unambiguous.&lt;/p>
&lt;p>The task for this project is to implement the functionality of importing quizzes from Canvas to the standard Quiz Composer format.
The unambiguous nature of Canvas quizzes makes this task non-trivial,
and adds an additional element of design decisions to this task.
It will be impossible to import quizzes 100% correctly,
but we want to be able to get close enough that most people can import their quizzes without issue.&lt;/p>
&lt;p>See Also:&lt;/p>
&lt;ul>
&lt;li>&lt;a href="https://github.com/edulinq/quiz-composer" target="_blank" rel="noopener">Repository for Quiz Composer&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://github.com/edulinq/quiz-composer/issues/27" target="_blank" rel="noopener">GitHub Issue&lt;/a>&lt;/li>
&lt;/ul>
&lt;h3 id="google-forms-export">Google Forms Export&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> &lt;code>Backend&lt;/code> &lt;code>Teaching Tools&lt;/code> &lt;code>API&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> software development, backend, rest api, data munging, python&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Moderate&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Medium (175 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="mailto:linqs.osre26@gmail.com">Eriq Augustine&lt;/a>, &lt;a href="mailto:linqs.osre26@gmail.com">Lucas Ellenberger&lt;/a>, &lt;a href="mailto:linqs.osre26@gmail.com">Lise Getoor&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>The Quiz Composer can export quizzes to many different formats,
each with a varying level of interactivity and feature support.
For example, quizzes can be exported to PDFs which will be printed and the students will just write down their answers to be checked in the future.
Quizzes can also be exported to interactive platforms like Canvas where students can enter answers that may be automatically checked with feedback immediately provided to the student.
On potential platform with functionality somewhere between the above two examples is &lt;a href="https://workspace.google.com/products/forms/" target="_blank" rel="noopener">Google Forms&lt;/a>.
&amp;ldquo;Forms&amp;rdquo; (an entity on Google Forms) can be something like a survey or (as of more recently) a quiz.&lt;/p>
&lt;p>The task for this project is to add support for exporting quizzes from the Quiz Composer to Google Forms.
There is a large overlap in the quiz features supported in Canvas (which the Quiz Composer already supports) and Google Forms,
so most settings should be fairly straightforward.
There may be some design work around deciding what features are specific to one quiz platform
and what features can be abstracted to work across several platforms.&lt;/p>
&lt;p>See Also:&lt;/p>
&lt;ul>
&lt;li>&lt;a href="https://github.com/edulinq/quiz-composer" target="_blank" rel="noopener">Repository for Quiz Composer&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://github.com/edulinq/quiz-composer/issues/19" target="_blank" rel="noopener">GitHub Issue&lt;/a>&lt;/li>
&lt;/ul>
&lt;h3 id="template-questions">Template Questions&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> &lt;code>Backend&lt;/code> &lt;code>Teaching Tools&lt;/code> &lt;code>API&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> software development, backend, data munging, python&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Moderate-Challenging&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="mailto:linqs.osre26@gmail.com">Eriq Augustine&lt;/a>, &lt;a href="mailto:linqs.osre26@gmail.com">Lucas Ellenberger&lt;/a>, &lt;a href="mailto:linqs.osre26@gmail.com">Lise Getoor&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Questions in the Quiz Composer are described using &lt;a href="https://en.wikipedia.org/wiki/JSON" target="_blank" rel="noopener">JSON&lt;/a> and &lt;a href="https://en.wikipedia.org/wiki/Markdown" target="_blank" rel="noopener">Markdown&lt;/a>
files which contain the question prompt, possible answers, and the correct answer.
(Of course there are many differ &lt;a href="https://github.com/edulinq/quiz-composer/blob/main/docs/question-types.md" target="_blank" rel="noopener">question types&lt;/a>,
each with different semantics and requirements.)
However, a limitation of this is that each question is always the same.
You can have multiple copies of a question with slightly different prompts, numbers, and answers;
but you are still limited to each question being static and unchanging.
It would be useful to have &amp;ldquo;template questions&amp;rdquo; that can dynamically create static questions from a template
and collection of replacement data.&lt;/p>
&lt;p>The task for this project is to add support for the &amp;ldquo;template questions&amp;rdquo; discussed above.
Much of the high-level design work for this issue has &lt;a href="https://github.com/edulinq/quiz-composer/issues/26" target="_blank" rel="noopener">already been completed&lt;/a>.
But there is still the implementation and low-level design decision left to do.&lt;/p>
&lt;p>See Also:&lt;/p>
&lt;ul>
&lt;li>&lt;a href="https://github.com/edulinq/quiz-composer" target="_blank" rel="noopener">Repository for Quiz Composer&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://github.com/edulinq/quiz-composer/issues/26" target="_blank" rel="noopener">GitHub Issue&lt;/a>&lt;/li>
&lt;/ul></description></item><item><title>Understanding Skin-Tone based Bias in Text-to-Image Models Using Stable Diffusion</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/ucsc/fairface/</link><pubDate>Tue, 27 May 2025 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/ucsc/fairface/</guid><description>&lt;p>This project investigates &lt;strong>skin tone bias in text-to-image generation&lt;/strong> by analyzing the output of &lt;strong>Stable Diffusion&lt;/strong> models when prompted with socially and occupationally descriptive text. Despite the growing popularity of generative models like Stable Diffusion, little has been done to evaluate how these models reproduce or amplify visual bias—especially related to &lt;strong>skin tone, perceived race, and social class&lt;/strong>—based solely on textual prompts.&lt;/p>
&lt;p>This work builds on prior studies of bias in large language models (LLMs) and vision-language models (VLMs), and aims to explore how biases manifest visually, without explicitly specifying race or ethnicity in the input prompt. Our approach combines &lt;strong>systematic prompt generation&lt;/strong>, &lt;strong>model-based image creation&lt;/strong>, and &lt;strong>skin tone quantification&lt;/strong> to assess disparities across generated samples.&lt;/p>
&lt;p>The ultimate goal is to develop a &lt;strong>reproducible evaluation pipeline&lt;/strong>, visualize disparities across demographic and occupational prompts, and explore strategies to mitigate representational harms in generative models.&lt;/p>
&lt;p>Our goal is to create a reproducible pipeline for:&lt;/p>
&lt;ul>
&lt;li>Generating images from prompts&lt;/li>
&lt;li>Annotating or analyzing them using computer vision tools&lt;/li>
&lt;li>Measuring bias across categories like skin tone, gender presentation, or status markers&lt;/li>
&lt;/ul>
&lt;p>Project webpage: &lt;a href="https://github.com/marzianizam/ucsc-ospo.github.io/tree/main/content/project/osre25/UCSC/FairFace" target="_blank" rel="noopener">https://github.com/marzianizam/ucsc-ospo.github.io/tree/main/content/project/osre25/UCSC/FairFace&lt;/a>&lt;/p>
&lt;h3 id="project-idea-measuring-bias-in-ai-generated-portraits">Project Idea: Measuring Bias in AI-Generated Portraits&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: Responsible AI, Generative Models, Ethics in AI&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: Python, PyTorch, Stable Diffusion, Prompt Engineering, Data Analysis&lt;/li>
&lt;li>&lt;strong>Difficulty&lt;/strong>: Medium&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong>: 350 hours&lt;/li>
&lt;li>&lt;strong>Mentors&lt;/strong>:
&lt;ul>
&lt;li>&lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/marzia-binta-nizam/">Marzia Binta Nizam&lt;/a> (mailto:manizam@ucsc.edu)&lt;/li>
&lt;li>Professor James Davis (mailto:davisje@ucsc.edu)&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h3 id="background">Background&lt;/h3>
&lt;p>Recent research has shown that text-to-image models can perpetuate racial and gender stereotypes through visual output. For instance, prompts like “CEO” or “nurse” often produce racially skewed results even when no explicit race or demographic cues are provided. This project examines whether similar disparities exist &lt;strong>along skin tone dimensions&lt;/strong>, focusing on &lt;strong>subtle biases&lt;/strong> rather than overt stereotypes.&lt;/p>
&lt;p>The key challenge is that visual bias is not always easy to measure. This project addresses this issue by utilizing &lt;strong>melanin-level quantification&lt;/strong>, a continuous and interpretable proxy for skin tone, in conjunction with consistent prompt templating and multi-sample averaging to ensure statistical rigor.&lt;/p>
&lt;hr>
&lt;h3 id="objectives">Objectives&lt;/h3>
&lt;ul>
&lt;li>Generate datasets using consistent prompts (e.g., &amp;ldquo;A portrait of a doctor&amp;rdquo;, &amp;ldquo;A homeless person&amp;rdquo;, etc.)&lt;/li>
&lt;li>Use Stable Diffusion (and optionally, other models like DALL·E or Midjourney) to generate diverse image sets&lt;/li>
&lt;li>Measure bias across demographic and occupational categories using image processing tools&lt;/li>
&lt;li>Visualize the distribution of melanin values and facial features across samples&lt;/li>
&lt;li>Explore prompt-level mitigation strategies to improve fairness in output&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h3 id="deliverables">Deliverables&lt;/h3>
&lt;ul>
&lt;li>Open-source codebase for prompt generation and image evaluation&lt;/li>
&lt;li>Statistical analysis of visual bias trends&lt;/li>
&lt;li>Blog post or visual explainer on findings&lt;/li>
&lt;li>Final report and recommendations on prompt engineering or model constraints&lt;/li>
&lt;/ul>
&lt;hr></description></item><item><title>UC Open Source Repository Browser</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/ucsc/orb/</link><pubDate>Mon, 03 Mar 2025 13:00:00 -0800</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/ucsc/orb/</guid><description>&lt;p>The University of California Open Source Repository Browser (UC ORB) is a discovery tool designed to map and classify open source projects across the UC system. This project is a collaboration with the &lt;a href="https://ucospo.net" target="_blank" rel="noopener">UC Network of Open Source Program Offices (OSPOs)&lt;/a>, which brings together six UC campuses (Santa Cruz, Berkeley, Davis, Los Angeles, Santa Barbara, and San Diego) to support open source research, promote sustainability, and establish best practices within academic environments.&lt;/p>
&lt;p>By providing a centralized platform, UC ORB enhances the visibility of UC’s open source contributions, fosters collaboration among researchers and developers, and serves as a model for other institutions aiming to improve open source discovery and sustainability.&lt;/p>
&lt;p>This project focuses on building the web application for UC ORB, which will serve as the primary interface for users to explore and interact with UC’s open source projects. The student will work on developing a clean, user-friendly, and scalable web application.&lt;/p>
&lt;h3 id="develop-the-uc-orb-application">Develop the UC ORB Application&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> &lt;code>Web development&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> Experience in Python and at least one Python-based web framework (e.g., Flask, Django, FastAPI), experience with front-end technologies (React, HTML, CSS, JavaScript), familiarity with Git and collaborative development workflows, familiarity with database interaction (SQL).&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Moderate&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="mailto:jgomez91@ucsc.edu">Juanita Gomez&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Develop a web application that serves as the front-end interface for the UC ORB. The application will allow users to browse, search, and explore open source projects across the UC system. The project will involve integrating with the repository database to fetch and display repository data, designing an intuitive user interface, and ensuring the application is scalable and maintainable.&lt;/p>
&lt;p>Specific Tasks:&lt;/p>
&lt;ul>
&lt;li>Choose an appropriate Python-based web framework (e.g., Flask, Django, or FastAPI) for the backend and set up the basic structure of the application.&lt;/li>
&lt;li>Develop a responsive and user-friendly front-end interface ensuring that it is accessible and works well on both desktop and mobile devices.&lt;/li>
&lt;li>Add search functionality to allow users to find projects by keywords, tags, or other metadata.&lt;/li>
&lt;li>Implement filtering options to narrow down search results (e.g., by campus, topic, or programming language).&lt;/li>
&lt;li>Deploy the application to a cloud platform (e.g., AWS, or Google Cloud) or GitHub Pages (GitHub.io) for public access.&lt;/li>
&lt;li>Create developer documentation that explains the application’s architecture, setup instructions, and contribution guidelines.&lt;/li>
&lt;li>Write a short user manual to help end-users browse and use the web application effectively.&lt;/li>
&lt;/ul></description></item><item><title>Applying MLOps to overcome reproducibility barriers in machine learning research</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/nyu/mlops/</link><pubDate>Sat, 01 Mar 2025 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/nyu/mlops/</guid><description>&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> machine learning, MLOps, reproducibility&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> Python, machine learning, GitOps, systems, Linux, data, Docker&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Hard&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/fraida-fund/">Fraida Fund&lt;/a> and &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/mohamed-saeed/">Mohamed Saeed&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Project Idea Description&lt;/strong>&lt;/p>
&lt;p>Reproducibility remains a significant problem in machine learning research, both in core ML and in the application of ML to other areas of science. In many cases, due to inadequate experiment tracking, dependency capturing, source code versioning, data versioning, and artifact sharing, even the authors of a paper may find it challenging to reproduce their own study several years later. This makes it difficult to vaidate and build on previous work, and raises concerns about its trustworthiness.&lt;/p>
&lt;p>In contrast, outside of academic research, MLOps tools and frameworks have been identified as a key enabler of reliable, reproducible, and trustworthy machine learning systems in production. A good reference on this topic is:&lt;/p>
&lt;blockquote>
&lt;p>Firas Bayram and Bestoun S. Ahmed. 2025. Towards Trustworthy Machine Learning in Production: An Overview of the Robustness in MLOps Approach. ACM Comput. Surv. 57, 5, Article 121 (May 2025), 35 pages. &lt;a href="https://doi.org/10.1145/3708497" target="_blank" rel="noopener">https://doi.org/10.1145/3708497&lt;/a>&lt;/p>
&lt;/blockquote>
&lt;p>This project seeks to bridge the gap between widely adopted practices in industry and academic research:&lt;/p>
&lt;ul>
&lt;li>by making it easier for researchers and scientists to use MLOps tools to support reproducibility. To achieve this, we will develop starter templates and recipes for research in computer vision, NLP, and ML for science, that have reproducibility &amp;ldquo;baked in&amp;rdquo; thanks to the integration of MLOps tools and frameworks. Researchers will launch these templates on open access research facilities like &lt;a href="https://chameleoncloud.org/" target="_blank" rel="noopener">Chameleon&lt;/a>.&lt;/li>
&lt;li>and, by developing complementary education and training materials to emphasize the important of reproducibility in ML, and how the tools and frameworks used in the starter templates can support this goal.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Writing a successful proposal for this project&lt;/strong>&lt;/p>
&lt;p>A good proposal for this project should -&lt;/p>
&lt;ul>
&lt;li>demonstrate a good understanding of the current barriers to reproducibility in machine learning research (specific examples are welcome),&lt;/li>
&lt;li>describe a &amp;ldquo;base&amp;rdquo; starter template, including the platforms and tools that will be integrated, as well as specific adaptations of this template for computer vision, NLP, and ML for science,&lt;/li>
&lt;li>explain the &amp;ldquo;user flow&amp;rdquo; - how a researcher would use the template to conduct an experiment or series of experiments, what the lifecycle of that experiment would look like, and how it would be made reproducible,&lt;/li>
&lt;li>include the contributor&amp;rsquo;s own ideas about how to make the starter templates more usable, and how to make the education and training materials relatable and useful,&lt;/li>
&lt;li>and show that the contributor has the necessary technical background and soft skills to contribute to this project. In particular, the contributor will need to create education and training materials that are written in a clear, straightforward, and concise manner, without unncessary jargon. The proposal should show evidence of the contributor&amp;rsquo;s writing abilities.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Github link&lt;/strong>&lt;/p>
&lt;p>There is no pre-existing Git repository for this project - at the beginning of the summer, the contributor will create a new repository in the &lt;a href="https://github.com/teaching-on-testbeds/" target="_blank" rel="noopener">Teaching on Testbeds&lt;/a> organization, and the project materials will &amp;ldquo;live&amp;rdquo; there.&lt;/p></description></item><item><title>CacheBench: Building a Benchmarking Suite for Cache Performance Evaluation</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/harvard/cachebench/</link><pubDate>Fri, 28 Feb 2025 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/harvard/cachebench/</guid><description>&lt;h3 id="overview">Overview&lt;/h3>
&lt;p>In this project, we aim to develop a comprehensive benchmarking suite, CacheBench, for evaluating the performance of cache systems in modern computing environments. Caches play a crucial role in enhancing system performance by reducing latency and improving data access speeds. However, evaluating cache performance is a complex task that requires a diverse set of workloads and metrics to capture the cache&amp;rsquo;s behavior accurately. The current focus is on the eviction algorithms and if time permits, we will extend to other components of cache design.&lt;/p>
&lt;p>This project will have three main components:&lt;/p>
&lt;ol>
&lt;li>Implementing and benchmarking existing cache eviction algorithms in &lt;a href="https://libcachesim.com/" target="_blank" rel="noopener">libCacheSim&lt;/a> using large-scale simulation. This part will mainly focus on reproducing existing works.&lt;/li>
&lt;li>Developing a set of microbenchmarks and a platform for researchers to evaluate new designs with little effort in the future. This part will focus on building the open-source infrastructure for future research.&lt;/li>
&lt;li>Developing a leaderboard for the community to submit new algorithms and workloads. This part will focus on building the community and fostering adoption and collaboration.&lt;/li>
&lt;/ol>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> storage systems, benchmarking, performance evaluation&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> C programming, web programming (e.g., node.js, React), database management&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Moderate&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Large (350 hours).&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/juncheng-yang/">Juncheng Yang&lt;/a>, Yazhuo Zhang (&lt;a href="mailto:yazhuo@inf.ethz.ch">yazhuo@inf.ethz.ch&lt;/a>)&lt;/li>
&lt;/ul></description></item><item><title>FairFace</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/ucsc/fair-face/</link><pubDate>Fri, 28 Feb 2025 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/ucsc/fair-face/</guid><description>&lt;h3 id="fairface-reproducible-bias-evaluation-in-facial-ai-models-via-controlled-skin-tone-manipulation">FairFace: Reproducible Bias Evaluation in Facial AI Models via Controlled Skin Tone Manipulation&lt;/h3>
&lt;p>Bias in facial AI models remains a persistent issue, particularly concerning skin tone disparities. Many studies report that AI models perform differently on lighter vs. darker skin tones, but these findings are often difficult to reproduce due to variations in datasets, model architectures, and evaluation settings.
The goal of this project is to investigate bias in facial AI models by manipulating skin tone and related properties in a controlled, reproducible manner. By leveraging BioSkin, we will adjust melanin levels and other skin properties on existing human datasets to assess whether face-based AI models (e.g., classification and vision-language models) exhibit biased behavior toward specific skin tones.&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> &lt;code>Fairness &amp;amp; Bias in AI&lt;/code>, &lt;code>Face Recognition &amp;amp; Vision-Language Models&lt;/code>, &lt;code>Dataset Augmentation for Reproducibility&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> Machine Learning &amp;amp; Computer Vision, Deep Learning (PyTorch/TensorFlow), Data Augmentation &amp;amp; Image Processing, Reproducibility &amp;amp; Documentation (GitHub, Jupyter Notebooks).&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Moderate&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Medium or Large ( Can be completed in either 175 or 350 hours, depending on the depth of analysis and number of models tested.)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="mailto:davisje@ucsc.edu">James Davis&lt;/a>, &lt;a href="mailto:pang@soe.ucsc.edu">Alex Pang&lt;/a>&lt;/li>
&lt;/ul>
&lt;h3 id="key-research-questions">Key Research Questions&lt;/h3>
&lt;ol>
&lt;li>Do AI models perform differently based on skin tone?
&lt;ul>
&lt;li>How do classification accuracy, confidence scores, and error rates change when skin tone is altered systematically?&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>What are the underlying causes of bias?
&lt;ul>
&lt;li>Is bias solely dependent on skin tone, or do other skin-related properties (e.g., texture, reflectance) contribute to model predictions?&lt;/li>
&lt;li>Is bias driven by dataset imbalances (e.g., underrepresentation of certain skin tones)?&lt;/li>
&lt;li>Do facial features beyond skin tone (e.g., structure, expression, pose) contribute to biased predictions?&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Are bias trends reproducible?
&lt;ul>
&lt;li>Can we replicate bias patterns across different datasets, model architectures, and experimental setups?&lt;/li>
&lt;li>How consistent are the findings when varying image sources and preprocessing methods?&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ol>
&lt;h3 id="specific-tasks">Specific Tasks:&lt;/h3>
&lt;ol>
&lt;li>Dataset Selection &amp;amp; Preprocessing
&lt;ul>
&lt;li>Choose appropriate face/human datasets (e.g., FairFace, CelebA, COCO-Human).&lt;/li>
&lt;li>Preprocess images to ensure consistent lighting, pose, and resolution before applying transformations.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Skin Tone Manipulation with BioSkin
&lt;ul>
&lt;li>Systematically modify melanin levels while keeping facial features unchanged.&lt;/li>
&lt;li>Generate multiple variations per image (lighter to darker skin tones).&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Model Evaluation &amp;amp; Bias Analysis
&lt;ul>
&lt;li>Test face classification models (e.g., ResNet, FaceNet) and vision-language models (e.g., BLIP, LLaVA) on the modified images.&lt;/li>
&lt;li>Compute fairness metrics (e.g., demographic parity, equalized odds).&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Investigate Underlying Causes of Bias
&lt;ul>
&lt;li>Compare model behavior across different feature sets.&lt;/li>
&lt;li>Test whether bias persists across multiple datasets and model architectures.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Ensure Reproducibility
&lt;ul>
&lt;li>Develop an open-source pipeline for others to replicate bias evaluations.&lt;/li>
&lt;li>Provide codebase and detailed documentation for reproducibility.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ol></description></item><item><title>IO logger: IO tracing in the modern computing era</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/harvard/iologger/</link><pubDate>Fri, 28 Feb 2025 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/harvard/iologger/</guid><description>&lt;h3 id="overview">Overview&lt;/h3>
&lt;p>Storage systems are critical components of modern computing infrastructures, and understanding their performance characteristics is essential for optimizing system efficiency. There were many works from twenty to thirty years ago, but the landscape has changed significantly with the advent of&lt;/p>
&lt;ul>
&lt;li>cloud computing, virtualization, and storage disaggregation on the &lt;strong>server side&lt;/strong>&lt;/li>
&lt;li>ubiquitous fast wireless networking for &lt;strong>end users&lt;/strong> that make remote storage feasible&lt;/li>
&lt;li>AI and ML workloads that generate and move massive data both in the cloud and on the edge.&lt;/li>
&lt;/ul>
&lt;p>In this project, we aim to develop an IO logger, a tool for tracing, logging and analyzing IO operations in various computing environments. The IO logger will capture detailed information about read and write operations, latency, throughput, and other metrics to help researchers and practitioners understand the behavior of storage systems under different workloads and configurations. By providing a comprehensive view of IO performance, the IO logger will enable users to identify bottlenecks, optimize resource utilization, and improve system efficiency.&lt;/p>
&lt;p>This project will have two phases:&lt;/p>
&lt;ol>
&lt;li>IO logger for *NIX systems: Develop a tool leveraging eBPF and other tools for tracing IO operations on Linux and other Unix-like systems. The tool will capture detailed information about disk reads and writes, network transfers, and other IO activities, providing insights into system performance. The tool will be open-sourced, and we will work with industry partners and testbeds to integrate it into existing monitoring and analysis tools. Moreover, we will collect and open source the IO traces to benefit the community.&lt;/li>
&lt;li>IO logger for personal computing environment: Develop a tool for end-users to trace IO operations on their personal devices, such as laptops, desktops, and mobile phones. We will design and implement tools for three different platforms, Window, MacOS and Andriod. We will use the tools to collect IO traces from volunteers and real-world applications. providing insights into storage usage, network activity, and application performance. The tool will be user-friendly, lightweight, and privacy-preserving, ensuring that users can monitor their IO activities without compromising their data security.&lt;/li>
&lt;/ol>
&lt;p>Notable difference and challenges compared to the existing works are:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>more IO requests with rich features&lt;/strong>: open-source traces from previous works were collected all after page cache, which are often write-heavy, lose most IO requests, and do not provide enough features, e.g., process name. To address this, we will build a tool that can also records requests served by page cache, which requires the tool to be efficient and cannot impose significant overhead to the ruuning systems.&lt;/li>
&lt;li>&lt;strong>focus on new applications and workloads&lt;/strong>: the existing works were mostly outdated from the 1990s, during which the Internet has not been widely used, and applications are mostly processing local data and does not communicate with outside world. While there have been a few works looked into mobile storage a decade ago. The landscape has changed significantly since then, especially with the advent of AI and ML workloads that generate and move massive data both in the cloud and on the edge. This project will look into the difference and challenges brought by these new applications and workloads.&lt;/li>
&lt;/ul>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> tracing tool, operating system, eBPF, performance evaluation&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> C programming, system programming, eBPF, Linux kernel, mobile application development&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Hard&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Large (350 hours).&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/juncheng-yang/">Juncheng Yang&lt;/a>&lt;/li>
&lt;/ul>
&lt;h4 id="related-works">Related works&lt;/h4>
&lt;ul>
&lt;li>[COSMOS] (&lt;a href="https://dl.acm.org/doi/abs/10.1145/3460095" target="_blank" rel="noopener">https://dl.acm.org/doi/abs/10.1145/3460095&lt;/a>)&lt;/li>
&lt;li>&lt;a href="https://dl.acm.org/doi/abs/10.1145/2987443.2987465" target="_blank" rel="noopener">mobile storage usage&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://dl.acm.org/doi/abs/10.1145/2043106.2043112" target="_blank" rel="noopener">mobile storage performance measurement&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://ieeexplore.ieee.org/abstract/document/7897092" target="_blank" rel="noopener">mobile application IO performance&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://dl.acm.org/doi/abs/10.1145/1140103.1140280" target="_blank" rel="noopener">stardust&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://dl.acm.org/doi/abs/10.1145/3149376" target="_blank" rel="noopener">GPFS&lt;/a>&lt;/li>
&lt;/ul></description></item><item><title>ReasonWorld</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/ucsc/reason-world/</link><pubDate>Fri, 28 Feb 2025 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/ucsc/reason-world/</guid><description>&lt;h3 id="reasonworld-real-world-reasoning-with-a-long-term-world-model">ReasonWorld: Real-World Reasoning with a Long-Term World Model&lt;/h3>
&lt;p>A world model is essentially an internal representation of an environment that an AI system would construct based on external information to plan, reason, and interpret its surroundings. It stores the system’s understanding of relevant objects, spatial relationships, and/or states in the environment. Recent augmented reality (AR) and wearable technologies like Meta Aria glasses provide an opportunity to gather rich information from the real world in the form of vision, audio, and spatial data. Along with this, large language (LLM), vision language models (VLMs), and general machine learning algorithms have enabled nuanced understanding and processing of multimodal inputs that can label, summarize, and analyze experiences.&lt;/p>
&lt;p>With &lt;strong>ReasonWorld&lt;/strong>, we aim to utilize these technologies to enable advanced reasoning about important objects/events/spaces in real-world environments in a structured manner. With the help of wearable AR technology, the system would be able to capture real-world multimodal data. We aim to utilize this information to create a long-memory modeling toolkit that would support features like:&lt;/p>
&lt;ul>
&lt;li>Longitudinal and structured data logging: Capture and storing of multimodal data (image, video, audio, location coordinates etc.)&lt;/li>
&lt;li>Semantic summarization: Automatic scene labeling via LLMs/VLMs to identify key elements in the surroundings&lt;/li>
&lt;li>Efficient retrieval: For querying and revisiting past experiences and answering questions like “Where have I seen this painting before?”&lt;/li>
&lt;li>Adaptability: Continuously refining and understanding the environment and/or relationships between objects/locations.&lt;/li>
&lt;li>Adaptive memory prioritization: Where the pipeline can assess the contextual significance of the captured data and retrieve those that are the most significant. The model retains meaningful, structured representations rather than raw, unfiltered data.&lt;/li>
&lt;/ul>
&lt;p>This real-world reasoning framework with a long-term world model can function as a structured search engine for important objects and spaces, enabling:&lt;/p>
&lt;ul>
&lt;li>Recognizing and tracking significant objects, locations, and events&lt;/li>
&lt;li>Supporting spatial understanding and contextual analysis&lt;/li>
&lt;li>Facilitating structured documentation of environments and changes over time&lt;/li>
&lt;/ul>
&lt;h3 id="alignment-with-summer-of-reproducibility">Alignment with Summer of Reproducibility:&lt;/h3>
&lt;ul>
&lt;li>Core pipeline for AR data ingestion, event segmentation, summarization, and indexing (knowledge graph or vector database) would be made open-source.&lt;/li>
&lt;li>Clear documentation of each module and how they collaborate with one another&lt;/li>
&lt;li>The project could be tested with standardized datasets, simulated environments as well as controlled real-world scenarios, promoting reproducibility&lt;/li>
&lt;li>Opportunities for Innovation - A transparent, modular approach invites a broad community to propose novel expansions&lt;/li>
&lt;/ul>
&lt;h3 id="specific-tasks">Specific Tasks:&lt;/h3>
&lt;ul>
&lt;li>A pipeline for real-time/batch ingestion of data with the wearable AR device and cleaning&lt;/li>
&lt;li>Have an event segmentation module to classify whether the current object/event is contextually significant, filtering out the less relevant observations.&lt;/li>
&lt;li>Have VLMs/LLMs summarize the events with the vision/audio/location data to be stored and retrieved later by structured data structures like knowledge graph, vector databases etc.&lt;/li>
&lt;li>Storage optimization with prioritizing important objects and spaces, optimizing storage based on contextual significance and frequency of access.&lt;/li>
&lt;li>Implement key information retrieval mechanisms&lt;/li>
&lt;li>Ensure reproducibility by providing datasets and scripts&lt;/li>
&lt;/ul>
&lt;h3 id="reasonworld">ReasonWorld&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> &lt;code>Augmented reality&lt;/code> &lt;code>Multimodal learning&lt;/code> &lt;code>Computer vision for AR&lt;/code> &lt;code>LLM/VLM&lt;/code> &lt;code>Efficient data indexing&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> Machine Learning and AI, Augmented Reality and Hardware integration, Data Engineering &amp;amp; Storage Optimization&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Hard&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="mailto:davisje@ucsc.edu">James Davis&lt;/a>, &lt;a href="mailto:pang@soe.ucsc.edu">Alex Pang&lt;/a>&lt;/li>
&lt;/ul></description></item><item><title>AI for Science: Automating Domain Specific Tasks with Large Language Models</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/ucr/domain-automation/</link><pubDate>Sun, 23 Feb 2025 21:30:56 -0800</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/ucr/domain-automation/</guid><description>&lt;p>Recent advancements in Large Language Models (LLMs) have transformed various fields by demonstrating remarkable capabilities in processing and generating human-like text. This project aims to explore the development of an open-source framework that leverages LLMs to enhance discovery across specialized domains.&lt;/p>
&lt;p>The proposed framework will enable LLMs to analyze and interpret complex datasets, automate routine tasks, and uncover novel insights. A key focus will be on equipping LLMs with domain-specific expertise, particularly in areas where specialized tools &amp;ndash; such as ANDES &amp;ndash; are not widely integrated with LLM-based solutions. By bridging this gap, the framework will empower researchers and professionals to harness LLMs as intelligent assistants capable of navigating and utilizing niche computational tools effectively.&lt;/p>
&lt;h3 id="ai-for-science-automating-domain-specific-tasks-with-large-language-models">AI for Science: Automating Domain Specific Tasks with Large Language Models&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: &lt;code>Large Language Models&lt;/code> &lt;code>AI for Science&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: Python, Experience with LLMs, Prompt Engineering, Fine-Tuning, LLM Frameworks&lt;/li>
&lt;li>&lt;strong>Difficulty&lt;/strong>: Medium-Difficult&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong>: Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentor&lt;/strong>: [Daniel Wong]&lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/daniel-wong/">Daniel Wong&lt;/a>, [Luanzheng &amp;ldquo;Lenny&amp;rdquo; Guo]&lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/luanzheng-lenny-guo/">Luanzheng &amp;#34;Lenny&amp;#34; Guo&lt;/a>&lt;/li>
&lt;/ul>
&lt;h3 id="project-tasks-and-milestones">Project Tasks and Milestones&lt;/h3>
&lt;ul>
&lt;li>Designing an extensible framework that facilitates the integration of LLMs with specialized software and datasets.&lt;/li>
&lt;li>Developing methodologies for fine-tuning LLMs to act as domain experts.&lt;/li>
&lt;li>Implementing strategies for improving tool interoperability, allowing LLMs to interact seamlessly with less commonly used but critical analytical platforms.&lt;/li>
&lt;/ul></description></item><item><title>Enhancing Reproducibility in Distributed AI Training: Leveraging Checkpointing and Metadata Analytics</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/pnnl/reproducibility_w_checkpoint/</link><pubDate>Fri, 21 Feb 2025 09:00:00 -0700</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/pnnl/reproducibility_w_checkpoint/</guid><description>&lt;p>Reproducibility in distributed AI training is a crucial challenge due to several sources of uncertainty, including stragglers, data variability, and inherent randomness. Stragglers—slower processing nodes in a distributed system—can introduce timing discrepancies that affect the synchronization of model updates, leading to inconsistent states across training runs. Data variability, stemming from non-deterministic data shuffling and differing data partitions across nodes, can also lead to variations in model performance. Additionally, inherent randomness in algorithm initialization, such as random weight beginnings and stochastic processes like dropout, further compounds these challenges. Reproducibility in AI is pivotal for ensuring the credibility of AI-driven scientific findings, akin to how reproducibility underpins traditional scientific research.&lt;/p>
&lt;p>To enhance AI reproducibility, leveraging metadata analytics and visualization along with saved checkpoints offers a promising solution. Checkpointing in AI training is a pivotal technique that involves saving snapshots of a model and its parameters at regular intervals throughout the training process. This practice is essential for maintaining progress in the face of potential interruptions, such as hardware failures, and enables the resumption of training without having to restart from scratch. In the context of distributed AI training, checkpointing also provides a framework for analyzing and ensuring reproducibility, offering a means to systematically capture and review the training trajectory of models. Analyzing checkpoints can specifically help identify issues like stragglers, which are slower computing nodes in a distributed system that can impede synchronized progress. For example, by examining the time stamps and resource utilization data associated with each checkpoint, anomalies in processing time can be detected, revealing nodes that consistently lag behind others. This analysis enables teams to diagnose performance bottlenecks and optimize resource allocation across the distributed system, ensuring smoother and more consistent training runs. By combining checkpointing with metadata analytics, it becomes possible to pinpoint the exact training iterations where delays occur, thereby facilitating targeted investigations and solutions to improve overall system reproducibility and efficiency.&lt;/p>
&lt;h3 id="workplan">Workplan&lt;/h3>
&lt;p>The proposed work will include: 1) Setting up a checkpointing system within the distributed AI training framework to periodically save model states and metadata; 2) Designing a metadata analysis schema for populating model and system statistics from the saved checkpoints; 3) Conducting exploratory data analysis to identify patterns, anomalies, and sources of variability in the training process; 4) Creating visualization tools to represent metadata insights with collected statistics and patterns; 5) Using insights from metadata analytics and visualization to optimize resource distribution across the distributed system and mitigate straggler effects; and 6) Disseminating results and methodologies through academic papers, workshops, and open-source contributions.&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> &lt;code>Reproducibility&lt;/code> &lt;code>AI&lt;/code> &lt;code>distributed AI&lt;/code> &lt;code>checkpoint&lt;/code> &lt;code>metadata analysis&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> C/C++, Python&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Medium&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/luanzheng-lenny-guo/">Luanzheng &amp;quot;Lenny&amp;quot; Guo&lt;/a>&lt;/li>
&lt;/ul></description></item><item><title>Enhancing Reproducibility in RAG Frameworks for Scientific Workflows</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/pnnl/llm_rag_reproducibility/</link><pubDate>Thu, 20 Feb 2025 09:00:00 -0700</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/pnnl/llm_rag_reproducibility/</guid><description>&lt;p>Retrieval-Augmented Generation (RAG) frameworks, which merge the capabilities of retrieval systems and generative models, significantly enhance the relevance and accuracy of responses produced by large language models (LLMs). These frameworks retrieve relevant documents from a large corpus and use these documents to inform the generative process, thereby improving the contextuality and precision of the generated content. Ensuring reproducibility in data queries using similarity search within these RAG frameworks is critical for maintaining the reliability and consistency of scientific workflows. Reproducibility ensures that the same input query consistently yields the same output, which is vital for scientific tasks that rely on precise and repeatable results. Inconsistencies can arise from various sources, affecting the trustworthiness of scientific outcomes. Differences in retrieval algorithms can lead to variable sets of documents being retrieved for the same query. Variations in data indexing methods can cause inconsistencies in how documents are ranked and accessed. The stochastic nature of LLM operations introduces an element of randomness in the generative process. Updates in datasets can also alter the baseline against which queries are processed and interpreted, leading to different results over time.&lt;/p>
&lt;p>This proposal aims to address these reproducibility challenges in similarity searches within RAG frameworks. This work involves analyzing the root causes of non-determinism, benchmarking and validating the consistency of query results, implementing enhancements to minimize variability, and developing tools and best practices to ensure reproducibility. Reproducibility in data queries can be influenced by several factors, including updates in datasets, differences in retrieval algorithms, varying data indexing methods, and the stochastic nature of LLM operations. Each of these factors can cause variability in the documents retrieved and in the generated responses. Ensuring consistency in query results across different runs is crucial for maintaining the integrity of LLM-driven scientific research, allowing researchers to confidently build upon prior work and achieve reliable, trustworthy outcomes.&lt;/p>
&lt;h3 id="workplan">Workplan&lt;/h3>
&lt;p>The proposed work will include: (1) Identifying sources of non-determinism and variability, such as algorithmic differences and indexing methods, in RAG; (2) Utilizing standardized scientific datasets to benchmark the reproducibility of similarity search results across different RAG frameworks; (3) Establishing protocols for handling dataset updates to ensure that such changes do not impact the reproducibility of similarity search results; and (4) Implementing mechanisms to track and document updates to datasets, ensuring that changes are reflected consistently across all instances of the RAG framework. By addressing these areas, the proposed work aims to mitigate challenges related to reproducibility in similarity search queries within RAG frameworks, ultimately enhancing the reliability and trustworthiness of scientific research outcomes.&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> &lt;code>Reproducibility&lt;/code> &lt;code>LLM&lt;/code> &lt;code>RAG&lt;/code> &lt;code>Scientific Workflows&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> C/C++, Python&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Medium&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/luanzheng-lenny-guo/">Luanzheng &amp;quot;Lenny&amp;quot; Guo&lt;/a>&lt;/li>
&lt;/ul></description></item><item><title>Exploration of I/O Reproducibility with HDF5</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/pnnl/h5_reproducibility/</link><pubDate>Wed, 19 Feb 2025 09:00:00 -0700</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/pnnl/h5_reproducibility/</guid><description>&lt;p>Parallel I/O is a critical component in high-performance computing (HPC), allowing multiple processes to read and write data concurrently from a shared storage system. &lt;a href="https://github.com/HDFGroup/hdf5" target="_blank" rel="noopener">HDF5&lt;/a>—a widely adopted data model and library for managing complex scientific data—supports parallel I/O but introduces challenges in I/O reproducibility, where repeated executions do not always produce identical results. This lack of reproducibility can stem from non-deterministic execution orders, variations in collective buffering strategies, and race conditions in metadata and dataset chunking operations within HDF5’s parallel I/O hierarchy. Moreover, many HDF5 operations that leverage &lt;a href="%28https://www.hdfgroup.org/wp-content/uploads/2020/02/20200206_ECPTutorial-final.pdf%29">MPI I/O&lt;/a> require collective communication; that is, all processes within a communicator must participate in operations such as metadata creation, chunk allocation, and data aggregation. These collective calls ensure that the file structure and data layout remain consistent across processes, but they also introduce additional synchronization complexity that can impact reproducibility if not properly managed. In HPC scientific workflows, consistent I/O reproducibility is essential for accurate debugging, validation, and benchmarking, ensuring that scientific results are both verifiable and trustworthy. Tools such as &lt;a href="https://github.com/hpc-io/h5bench" target="_blank" rel="noopener">h5bench&lt;/a>—a suite of I/O kernels designed to exercise HDF5 I/O on parallel file systems—play an important role in identifying these reproducibility challenges, tuning performance, and ultimately supporting the overall robustness of large-scale scientific applications.&lt;/p>
&lt;h3 id="workplan">Workplan&lt;/h3>
&lt;p>The proposed work will include (1) analyzing and characterizing parallel I/O operations in &lt;a href="https://www.hdfgroup.org/wp-content/uploads/2020/02/20200206_ECPTutorial-final.pdf" target="_blank" rel="noopener">HDF5&lt;/a> with &lt;a href="https://github.com/hpc-io/h5bench" target="_blank" rel="noopener">h5bench&lt;/a> miniapps, (2) exploring and validating potential reproducibility challenges within the parallel I/O hierarchy (e.g., MPI I/O), and (3) implementing solutions to address parallel I/O reproducibility.&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> &lt;code>Parallel I/O&lt;/code> &lt;code>MPI-I/O&lt;/code> &lt;code>Reproducibility&lt;/code> &lt;code>HPC&lt;/code> &lt;code>HDF5&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> C/C++, Python&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Medium&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/luanzheng-lenny-guo/">Luanzheng &amp;quot;Lenny&amp;quot; Guo&lt;/a> and [Wei Zhang]&lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/wei-zhang/">Wei Zhang&lt;/a>&lt;/li>
&lt;/ul></description></item><item><title>Peersky Browser</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/ucsc/peersky/</link><pubDate>Tue, 18 Feb 2025 12:00:00 -0800</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/ucsc/peersky/</guid><description>&lt;p>&lt;a href="https://peersky.p2plabs.xyz/" target="_blank" rel="noopener">Peersky Browser&lt;/a> is an experimental personal gatekeeper to a new way of accessing web content. In a world where a handful of big companies control most of the internet, Peersky leverages distributed web technologies—&lt;a href="https://ipfs.tech/" target="_blank" rel="noopener">IPFS&lt;/a>, &lt;a href="https://holepunch.to/" target="_blank" rel="noopener">Hypercore&lt;/a>, and Web3—to return control to the users. With integrated local P2P applications, Peersky offers a fresh, community-driven approach to browsing.&lt;/p>
&lt;h3 id="implement-web-extensions-integration">Implement Web Extensions Integration&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> &lt;code>Browser Extensions&lt;/code>, &lt;code>UI/UX&lt;/code>, &lt;code>Electron&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> JavaScript, Electron.js, HTML/CSS&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Moderate&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Medium (175 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/akhilesh-thite/">Akhilesh Thite&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Implement web extension support in Electron by leveraging its web extension node modules, pre-installing extensions, and providing a user interface for adding, updating, and securely managing them.&lt;/p>
&lt;p>&lt;strong>Tasks:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Loading Extensions via Electron Modules:&lt;/strong>
&lt;ul>
&lt;li>Utilize Electron’s web extension node modules to load extensions, as Electron.js doesn&amp;rsquo;t support marketplace integration.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Default Pre-installed Extensions:&lt;/strong>
&lt;ul>
&lt;li>Configure a set of pre-installed extensions like uBlock to offer immediate value for privacy and security.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>User-Installed Extensions UI:&lt;/strong>
&lt;ul>
&lt;li>Create an interface where users can add extension &lt;code>.zip&lt;/code> files in &lt;code>peersky://settings&lt;/code>.&lt;/li>
&lt;li>Add an option for users to manually update all installed extensions.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Validate and Sandbox Extensions:&lt;/strong>
&lt;ul>
&lt;li>Check the integrity and manifest structure of the uploaded extensions to ensure they meet Chrome Manifest V3 requirements.&lt;/li>
&lt;li>Apply sandboxing techniques and enforce strict content security policies to mitigate potential risks.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Extension Management UI:&lt;/strong>
&lt;ul>
&lt;li>Design a dedicated UI at the top right of the navigation bar to manage extensions, including stack order and pinning functionality for quick access and organization.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h3 id="implement-chat-history-synchronization-for-hyper-chat-rooms">Implement Chat History Synchronization for Hyper Chat Rooms&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> &lt;code>P2P Communication&lt;/code>, &lt;code>Hypercore Protocol&lt;/code>, &lt;code>Real-time Synchronization&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> JavaScript, Distributed Systems, P2P&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Moderate&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Medium (175 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/akhilesh-thite/">Akhilesh Thite&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Implement chat history synchronization for Hyper chat rooms, ensuring that new devices retrieve all past messages—including those sent while offline—for a seamless user experience. Additionally, research and experiment with mDNS to enable true offline, peer-to-peer messaging on local networks.&lt;/p>
&lt;p>&lt;strong>Tasks:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;strong>History Retrieval Mechanism:&lt;/strong>
&lt;ul>
&lt;li>Implement chat history synchronization so that when a new device joins a Hyper chat room, it retrieves the entire chat history from the Hypercore feed.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Offline Message Inclusion:&lt;/strong>
&lt;ul>
&lt;li>Ensure that devices that were offline during prior messages can still access the full chat history upon joining the room, even after messages were sent in their absence.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>UI Integration:&lt;/strong>
&lt;ul>
&lt;li>Create a seamless experience for users across devices by ensuring that no messages are lost and that users can access the full chat history regardless of their online status.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Research mDNS (Multicast DNS):&lt;/strong>
&lt;ul>
&lt;li>mDNS is a protocol that allows devices on the same local network to communicate with each other without the need for a central DNS server. This enables peer-to-peer communication, especially in offline environments, making it ideal for offline messaging.&lt;/li>
&lt;li>Experiment with the &lt;code>mDNS()&lt;/code> function to enable peer-to-peer communication for offline chat rooms.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Create Hyper Chat Web App Version:&lt;/strong>
&lt;ul>
&lt;li>Currently, Hyper chat is accessed via &lt;code>peersky://p2p/chat&lt;/code>. Develop a web app version of Hyper chat that can be hosted on the &lt;code>hyper://&lt;/code> protocol (&lt;code>hyper://chat.p2plabs.xyz&lt;/code>). This way, other P2P browsers (like &lt;a href="https://agregore.mauve.moe/" target="_blank" rel="noopener">Agregore&lt;/a>) can use it to communicate.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul></description></item><item><title>AR4VIP</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/ucsc/ar4vip/</link><pubDate>Tue, 18 Feb 2025 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/ucsc/ar4vip/</guid><description>&lt;p>We are interested in developing navigation aids for visually impaired people (VIP) using AR/VR technologies.
Our intended use is primarily indoors or outdoors but within private confines e.g. person&amp;rsquo;s backyard.
Using AR/VR headsets or smart glasses allows navigation without using a cane and frees
the users&amp;rsquo; hands for other tasks.&lt;/p>
&lt;h3 id="continue-development-on-meta-quest-3-headset">Continue Development on Meta Quest 3 Headset&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> &lt;code>Dynamic scenes&lt;/code> &lt;code>Spatial audio&lt;/code> &lt;code>Proximity detection&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> AR/VR familiarity, WebXR, Unity, SLAM, good communicator, good documentation skills&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Moderate&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Medium or large (175 or 350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="mailto:pang@soe.ucsc.edu">Alex Pang&lt;/a>, &lt;a href="davis@cs.ucsc.edu">James Davis&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Continue development and field testing with the Meta Quest 3 headset.
See this &lt;a href="https://github.com/sail360/UCSC-VIP-Research" target="_blank" rel="noopener">repository page&lt;/a> for current status.&lt;/p>
&lt;p>Specific tasks:&lt;/p>
&lt;ul>
&lt;li>Improve spatial audio mapping&lt;/li>
&lt;li>Improve obstacle detection, at different heights, with pre-scanned geometry as well as dynamic objects
e.g. other people, pets, doors&lt;/li>
&lt;li>Special handling of hazards e.g. stairs, uneven floors, etc.&lt;/li>
&lt;li>Explore/incorporate AI to help identify objects in the scene when requested by user&lt;/li>
&lt;/ul>
&lt;h3 id="new-development-on-smart-glasses">New Development on Smart Glasses&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> &lt;code>Dynamic scenes&lt;/code> &lt;code>Spatial audio&lt;/code> &lt;code>Proximity detection&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> AR/VR familiarity, WebXR, Unity, SLAM, good communicator, good documentation skills&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Moderate&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="mailto:pang@soe.ucsc.edu">Alex Pang&lt;/a>, &lt;a href="mailto:davis@cs.ucsc.edu">James Davis&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>VR headsets are bulky and awkward, but currently is more advanced than AR glasses in terms of programmability.
Ultimately, the form factor of smart glasses is more practical for extended use by our target users.
There are many vendors working on pushing out their version of smart glasses targetting various applications
e.g. alternative for watching TV, etc. We are interested in those that provide capabilities to support
spatial computing. Most of these will likely have their own brand specific APIs. This project has 2 goals:
(a) develop generic brand-independent API, perhaps extensions to WebXR, to support overarching goal of navigation
aid for VIP, and
(b) port functionality of VR version to smart glasses while taking advantage of smart glass functionalities and sensors.&lt;/p>
&lt;p>Specific tasks:&lt;/p>
&lt;ul>
&lt;li>Explore current and soon-to-be-available smart glass options e.g. Snap Spectacles, Xreal Air 2 ultra, etc. and select a platform to work on (subject to cost and availability of SDK). At a minimum, glass should be microphones and speakers, and cameras. Infrared cameras or other low light capability is a plus. Sufficient battery life or option for quick exchange.&lt;/li>
&lt;li>Identify support provided by SDK e.g. does it do realtime scene reconstruction? does it support spatial audio? etc. If it supports features outside of WebXR, provide generic hooks to improve portability of code to other smart glasses.&lt;/li>
&lt;li>Port and extend functionalities from the Meta Quest 3 VR headsets to smart glass platform.&lt;/li>
&lt;li>Add AI support if glasses support them.&lt;/li>
&lt;li>Provide documentation of work.&lt;/li>
&lt;/ul></description></item><item><title>Assessing and Enhancing CC-Snapshot for Reproducible Experiment Environments</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/uchicago/cc-snapshot/</link><pubDate>Tue, 18 Feb 2025 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/uchicago/cc-snapshot/</guid><description>&lt;h2 id="overview">Overview&lt;/h2>
&lt;p>A critical challenge in computer systems research reproducibility is establishing and sharing experimental environments. While open testbeds like Chameleon provide access to hardware resources, researchers still face significant barriers when attempting to recreate the precise software configurations, dependencies, and system states needed for reproducible experiments. Environment snapshotting tools offer a solution, but face technical challenges in consistently capturing running systems without introducing distortions or requiring disruptive system modifications. This project addresses these fundamental reproducibility barriers by enhancing CC-Snapshot, an tool capturing the experimental environment configured by the user on bare metal images, to create more reliable and consistent system captures that can be shared and redeployed without loss of fidelity.&lt;/p>
&lt;p>&lt;a href="https://chameleoncloud.readthedocs.io/en/latest/technical/images.html#the-cc-snapshot-utility" target="_blank" rel="noopener">CC-Snapshot&lt;/a> is a tool on the &lt;a href="chameleoncloud.org">Chameleon&lt;/a> testbed that enables users to package their customized environments as complex images or appliances. By allowing researchers to share these environments easily, CC-Snapshot offers a powerful mechanism for reproducibility, ensuring that experiments can be replicated and extended by others.&lt;/p>
&lt;p>In this project, you will review existing CC-Snapshot workflows, research the latest snapshotting technologies, and develop enhancements that improve the tool’s usability and reliability. This includes ensuring snapshots are created consistently (even when the OS is actively running), preserving the integrity of user systems, and exploring advanced features such as out-of-band snapshotting and API-based triggers.&lt;/p>
&lt;h2 id="key-outcomes">Key Outcomes&lt;/h2>
&lt;ul>
&lt;li>Improved Snapshot Consistency: New methods to capture the full state of a disk without risking corruption or data inconsistency.&lt;/li>
&lt;li>Enhanced Reproducibility: A refined workflow that allows researchers to reliably share custom environments, facilitating collaborative and repeatable experiments.&lt;/li>
&lt;li>User-Friendly Tooling: Streamlined processes that reduce disruption to running systems—so installing dependencies or rebooting into special environments is less burdensome.&lt;/li>
&lt;li>Exploratory Features (Stretch Goals): Advanced mechanisms to stream disk data in real time during snapshotting and to initiate snapshots via an API call (for parity with VM snapshots).&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Topics&lt;/strong>: Cloud Computing, Systems &amp;amp; Infrastructure, Reproducibility, Operating System Internals&lt;/p>
&lt;p>&lt;strong>Skills&lt;/strong>: Linux / OS Concepts, Cloud Tools, Systems Programming / Scripting, DevOps / CI&lt;/p>
&lt;p>&lt;strong>Difficulty&lt;/strong>: Moderate&lt;/p>
&lt;p>&lt;strong>Size&lt;/strong>: Medium&lt;/p>
&lt;p>&lt;strong>Mentors&lt;/strong>: &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/michael-sherman/">Michael Sherman&lt;/a>, &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/mark-powers/">Mark Powers&lt;/a>&lt;/p>
&lt;p>&lt;strong>Tasks&lt;/strong>:&lt;/p>
&lt;ul>
&lt;li>Ensure Snapshot Consistency
&lt;ul>
&lt;li>Reboot into a ramdisk and copy the offline disk.&lt;/li>
&lt;li>Use kexec to switch to/from a ramdisk environment without a full reboot.&lt;/li>
&lt;li>Change images to use a snapshot-capable filesystem (e.g., LVM) for safer live snapshots.&lt;/li>
&lt;li>Investigate additional methods (e.g., blog.benjojo.co.uk) for safely imaging live disks.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Prevent System Modifications During Snapshot
&lt;ul>
&lt;li>Currently, CC-Snapshot installs dependencies (e.g., qemu-img) on the running system, affecting its state.&lt;/li>
&lt;li>In-Band Fix: Download and run tools in a temp directory with static linking, avoiding system-level changes.&lt;/li>
&lt;li>Out-of-Band Approach: Snapshots done via ramdisk or kexec do not require altering the running system.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>API-Triggered Snapshots
&lt;ul>
&lt;li>Extend or integrate with the Nova “snapshot instance” API to support the same workflow for bare metal.&lt;/li>
&lt;li>Leverage Ironic’s new “service steps” feature for an automated snapshot pipeline.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>(Stretch Goal) Streaming Snapshots
&lt;ul>
&lt;li>Modify the workflow to stream data directly to storage, rather than making a full local copy first.&lt;/li>
&lt;li>Explore incremental or differential snapshot techniques to reduce bandwidth usage and storage overhead.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul></description></item><item><title>CarbonCast: Building an end-to-end consumption-based Carbon Intensity Forecasting service</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/ucsc/carboncast/</link><pubDate>Tue, 18 Feb 2025 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/ucsc/carboncast/</guid><description>&lt;p>&lt;a href="https://github.com/carbonfirst/carboncast" target="_blank" rel="noopener">CarbonCast&lt;/a> is a machine-learning-based approach to provide multi-day forecasts of the electrical grid&amp;rsquo;s carbon intensity. Developed in Python, the current version of CarbonCast delivers accurate forecasts in numerous regions by using historical source production data of a particular geographical region, time of day/year, and weather forecasts as features. However, there is no easy way to access and visualize the data through a standard interface. In addition, much important information is left out and is not available to users. For instance, electricity grids often import electricity from neighboring regions and so electricity consumption depends on both electricity generation and imports. Moreover, it is imperative for each energy source to utilize a tailored predictive mechanism. Consequently, any carbon optimization solution trying to reduce carbon emissions due to its electricity consumption will benefit more from following a consumption-based CI signal.&lt;/p>
&lt;p>The plan for this project is to develop both the frontend and the backend API services for CarbonCast. We also intend to enhance CarbonCast by implementing an architecture wherein each region can employ a distinct interface for their predictive modeling. In scenarios where these new models do not yield superior outcomes within a region, the current architecture will serve as a fallback solution.&lt;/p>
&lt;h3 id="building-an-end-to-end-consumption-based-carbon-intensity-forecasting-service">Building an end-to-end consumption-based Carbon Intensity Forecasting service&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> &lt;code>Databases&lt;/code> &lt;code>Machine Learning&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> Python, command line (bash), MySQL, Django, machine learning, cronjob&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Moderate&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Medium (175 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/abel-souza/">Abel Souza&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Develop a containerized end-to-end backend, API, and frontend for collecting, estimating, and visualizing real-time and forecast electrical grid&amp;rsquo;s carbon intensity data in a scalable manner.&lt;/p>
&lt;p>Tasks:&lt;/p>
&lt;ul>
&lt;li>Research web technologies and frameworks relevant to CarbonCast development.&lt;/li>
&lt;li>Run and collect CarbonCast&amp;rsquo;s data (CSV)&lt;/li>
&lt;li>Ingest CSV into a MySQL or SQLite database&lt;/li>
&lt;li>Develop an Application Programming Interface (API) and a Web User Interface (UI) to provide real-time data access and visualization.&lt;/li>
&lt;li>Deploy the CarbonCast API as a service and dockerize it so that other users and applications can locally deploy and use it easily.&lt;/li>
&lt;li>Implement a choropleth web map to visualize the carbon intensity data across the different geographical regions supported by CarbonCast.&lt;/li>
&lt;li>Enhance CarbonCast by implementing an extensible architecture wherein every region can employ distinct models for their predictive modeling.&lt;/li>
&lt;/ul></description></item><item><title>Chameleon Trovi Support for Complex Experiment Appliances</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/uchicago/trovi/</link><pubDate>Tue, 18 Feb 2025 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/uchicago/trovi/</guid><description>&lt;h2 id="overview">Overview&lt;/h2>
&lt;p>The discoverability and accessibility of research artifacts remains a significant barrier to reproducibility in computer science research. While digital libraries index research papers, they rarely provide direct access to the artifacts needed to reproduce experiments, especially complex multi-node systems. Additionally, when artifacts are available, they often lack standardized metadata, versioning, and deployment mechanisms that would enable researchers to easily find and reuse them. This project addresses these challenges by extending Trovi, a repository of experimental artifacts executable on open platforms, to support complex, multi-node appliances, making sophisticated experimental environments discoverable, shareable, and deployable through a standardized interface - ultimately lowering the barriers to reproducing complex systems experiments.&lt;/p>
&lt;p>&lt;a href="chameleoncloud.org/">Chameleon&lt;/a> has historically enabled researchers to orchestrate complex appliances—large, multi-node clusters configured via OpenStack Heat—to conduct advanced experiments. Meanwhile, Chameleon team introduced &lt;a href="chameleoncloud.org/experiment/share">Trovi&lt;/a> as repository for open platforms (beyond Chameleon) that pioneers mechanisms for artifact and platform integration leading to immediate execution for pratical reproducibility. This project aims to bridge the two by adding support in Trovi for importing, discovering, and launching complex appliances. By integrating these capabilities, researchers will be able to one-click deploy complex appliances directly from the Trovi dashboard, archive them for future reference, and reproduce experiments on demand.&lt;/p>
&lt;h2 id="key-outcomes">Key Outcomes&lt;/h2>
&lt;ul>
&lt;li>Extended Trovi API: Enable the import and management of complex appliances as artifacts.&lt;/li>
&lt;li>Streamlined One-Click Launch: Integrate with Chameleon’s existing provisioning workflows so users can launch multi-node clusters directly from Trovi.&lt;/li>
&lt;li>Enhanced Dashboard Experience: Provide UI assistance for discovering, reviewing, and customizing complex appliance artifacts.&lt;/li>
&lt;li>Improved Artifact Reproducibility: Automate the process of exporting CC-snapshot images and other resources to ensure everything is preserved across sites (UC, TACC), highlighting any parameters that need user attention for cross-site portability.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Topics&lt;/strong>: &lt;code>Reproducible Research&lt;/code>, &lt;code>Cloud Computing &amp;amp; Orchestration&lt;/code>, &lt;code>OpenStack Heat&lt;/code>, &lt;code>UI/UX &amp;amp; Web Development&lt;/code>&lt;/p>
&lt;p>&lt;strong>Skills&lt;/strong>: Python, APIs, Cloud (OpenStack), DevOps &amp;amp; Automation, Frontend&lt;/p>
&lt;p>&lt;strong>Difficulty&lt;/strong>: Hard&lt;/p>
&lt;p>&lt;strong>Size&lt;/strong>: Large&lt;/p>
&lt;p>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/mark-powers/">Mark Powers&lt;/a>&lt;/p>
&lt;p>&lt;strong>Tasks&lt;/strong>:&lt;/p>
&lt;ul>
&lt;li>Extensions to the Trovi API
&lt;ul>
&lt;li>Add support for importing complex appliances as artifacts (including Heat templates, metadata, and associated disk images).&lt;/li>
&lt;li>Develop methods for tagging, versioning, and categorizing these appliances, making them easier to discover.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>One-Click Launch of Complex Appliances
&lt;ul>
&lt;li>Integrate with Chameleon’s orchestration engine, enabling single-click cluster deployments from the Trovi UI.&lt;/li>
&lt;li>Validate correct configuration and resource availability through automated checks.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Trovi Dashboard Enhancements
&lt;ul>
&lt;li>Update the front-end to provide intuitive controls for customizing or parameterizing complex appliances before launching.&lt;/li>
&lt;li>Offer a clear workflow for reviewing dependencies, resource requirements, and usage instructions.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Automated Export &amp;amp; Multi-Site Testing
&lt;ul>
&lt;li>Streamline the export of snapshots or images into Trovi as part of the appliance import process.&lt;/li>
&lt;li>Optionally re-run the imported appliances at multiple sites (UC, TACC), detecting any unparameterized settings or missing dependencies.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul></description></item><item><title>Contextualization – Extending Chameleon’s Orchestration for One-Click Experiment Deployment</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/uchicago/contextualization/</link><pubDate>Tue, 18 Feb 2025 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/uchicago/contextualization/</guid><description>&lt;h2 id="overview">Overview&lt;/h2>
&lt;p>Reproducibility in computer systems research is often hindered by the quality and completeness of artifact descriptions and the complexity of establishing experimental environments. When experiments involve multiple interconnected components, researchers struggle with hardcoded configurations, inadequate documentation of setup processes, and missing validation steps that would verify correct environment establishment. This project addresses these challenges by extending orchestration capabilities beyond basic hardware provisioning to include comprehensive contextualization—making complex, multi-component experimental environments deployable via parameterized templates with clear validation points, standardized metadata, and minimal user intervention—thus significantly reducing the barriers to reproducing complex distributed systems experiments.&lt;/p>
&lt;p>&lt;a href="chameleoncloud.org">Chameleon&lt;/a> already provides powerful capabilities to orchestrate and configure resources through Heat templates (similar to Terraform) and the &lt;a href="https://python-chi.readthedocs.io/" target="_blank" rel="noopener">python-chi&lt;/a> library. However, these focus primarily on provisioning (i.e., allocating and configuring hardware resources). This project goes a step further by addressing contextualization—the process of creating complete, ready-to-use experimental environments that incorporate everything from network layout to instance-level configuration and discovery—with additional features such as parameterized templates, experiment-level metadata, and output reporting.&lt;/p>
&lt;h2 id="key-outcomes">Key Outcomes&lt;/h2>
&lt;ul>
&lt;li>Template-Based One-Click Launch: Users can deploy multi-resource experiments (VMs, networks, storage, etc.) via a single click or a minimal set of input parameters.&lt;/li>
&lt;li>Enhanced Experiment Contextualization: Each launched resource can gain access to global “experiment-level” metadata (e.g., IP-to-hostname mappings for cluster authentication) and outputs that summarize important details.&lt;/li>
&lt;li>Streamlined User Experience: An asynchronous deployment workflow that provides notifications and uses “outputs” to highlight critical connection information (e.g., bastion host IP, final results).&lt;/li>
&lt;li>Optional Advanced Features: Partial reconfiguration to avoid full rebuilds when changes are minor, an “export” function to capture existing deployments into a new template, and potential publishing to Trovi for reproducibility and archiving.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Topics&lt;/strong>: Cloud Computing &amp;amp; Orchestration, Infrastructure as Code, DevOps &amp;amp; Automation, Reproducible Research Environments&lt;/p>
&lt;p>&lt;strong>Skills&lt;/strong>:&lt;/p>
&lt;ul>
&lt;li>OpenStack &amp;amp; Heat Templates: Familiarity with provisioning resources on Chameleon using Heat or Terraform-like workflows.&lt;/li>
&lt;li>Python &amp;amp; Scripting: For enhancing or extending the python-chi library.&lt;/li>
&lt;li>Systems / Network Knowledge: Understanding multi-VM topologies, cluster configurations, and network-level interactions.&lt;/li>
&lt;li>CI/CD &amp;amp; DevOps: Experience building or integrating asynchronous deployment and notifications.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Difficulty&lt;/strong>: Hard&lt;/p>
&lt;p>&lt;strong>Size&lt;/strong>: Large (suitable for a semester-long project or a summer internship)&lt;/p>
&lt;p>&lt;strong>Mentors&lt;/strong>: &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/paul-marshall/">Paul Marshall&lt;/a>&lt;/p>
&lt;p>&lt;strong>Tasks&lt;/strong>:&lt;/p>
&lt;ul>
&lt;li>One-Click Template Launch
&lt;ul>
&lt;li>Design a template (in Heat or similar) specifying multiple cloud resources (images, networks, disk images, SSH keys, etc.).&lt;/li>
&lt;li>Ensure the template author can define input parameters with defaults.&lt;/li>
&lt;li>Allow the user to launch the template quickly with default values or adjust parameters before deployment.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Asynchronous Provisioning &amp;amp; Notifications
&lt;ul>
&lt;li>Implement a long-running process that deploys resources step-by-step.&lt;/li>
&lt;li>Provide status updates to the user (e.g., via UI notifications, email, or logs) when deployments complete or fail.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Experiment-Level Metadata
&lt;ul>
&lt;li>Inject metadata such as IP-to-hostname mappings to each instance for easy cluster authentication.&lt;/li>
&lt;li>Allow the template to define “outputs” (like a public IP of a bastion or location of final results).&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Partial Reconfiguration (Optional)
&lt;ul>
&lt;li>Enable partial updates if only one of several servers changes, saving time and resources.&lt;/li>
&lt;li>Improve fault tolerance by avoiding full redeploys in the event of partial failures.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Export Running Configurations into a New Template (Optional)
&lt;ul>
&lt;li>Build a web-interface or script to detect existing user-owned resources (servers, networks, etc.).&lt;/li>
&lt;li>Generate a proposed template from those resources, suggesting parameters (e.g., flavor, disk image, or SSH key).&lt;/li>
&lt;li>Extend or modify existing templates by adding discovered resources.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Integration with Trovi / Multi-Site Testing (Optional)
&lt;ul>
&lt;li>Provide a method to archive or publish the final template (and associated disk images, data sets) in Trovi.&lt;/li>
&lt;li>Attempt to re-run the template at multiple Chameleon sites (e.g., UC, TACC) to identify parameters or modifications needed for cross-site reproducibility.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul></description></item><item><title>MPI Appliance for HPC Research on Chameleon</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/uchicago/mpi/</link><pubDate>Tue, 18 Feb 2025 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/uchicago/mpi/</guid><description>&lt;h2 id="overview">Overview&lt;/h2>
&lt;p>Message Passing Interface (MPI) is the dominant programming model for high-performance computing (HPC), enabling applications to scale efficiently across thousands of processing cores. In reproducibility initiatives for HPC research, MPI implementations are critical as they manage the complex communications that underpin parallel scientific applications. However, reproducing MPI-based experiments remains challenging due to the need for specific library versions, network configurations, and multi-node setups that must be precisely orchestrated.&lt;/p>
&lt;p>The popularity of an “MPI cluster” as a base layer for many results in HPC caused support for MPI template and appliance to be specifically requested by the SC24 reproducibility chair to support the conference&amp;rsquo;s reproducibility initiative, providing researchers with standardized environments for validating results. By extending the work begun for SC24, this project aims to create higher-quality, ready-to-use, and maintainable MPI environments for the Chameleon testbed that abstracts away complex configuration details while ensuring consistent performance across experiments—thus making HPC experiments more accessible and reproducible for the broader research community.&lt;/p>
&lt;p>You will lead efforts to configure disk images with the necessary MPI dependencies and provide orchestration templates that set up networking and instances automatically. The resulting appliance will allow researchers to quickly and consistently deploy distributed computing environments with MPI. The goal is to facilitate reproducible and scalable computational experiments for a wide range of scientific and engineering applications.&lt;/p>
&lt;h1 id="key-outcomes">Key Outcomes&lt;/h1>
&lt;ul>
&lt;li>Ready-to-Use MPI Disk Images: Create one or more images pre-configured with the correct versions of MPI and dependencies, ensuring a consistent environment.&lt;/li>
&lt;li>Simple Cluster Configuration Scripts: Provide scripts or playbooks that efficiently bring up a fully functional MPI cluster on Chameleon, abstracting away manual setup steps.&lt;/li>
&lt;li>Orchestration Template: An automated workflow that sets up networks, instances, and additional resources needed to run large-scale MPI workloads.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Topics&lt;/strong>: High-Performance Computing (HPC), Cloud Computing, MPI &amp;amp; Distributed Systems, DevOps &amp;amp; Automation&lt;/p>
&lt;p>&lt;strong>Skills&lt;/strong>:&lt;/p>
&lt;ul>
&lt;li>MPI &amp;amp; Parallel Programming: Understanding of MPI libraries, cluster configuration, and typical HPC workflows.&lt;/li>
&lt;li>Cloud Orchestration: Familiarity with OpenStack Heat or other Infrastructure-as-Code (IaC) tools for provisioning resources.&lt;/li>
&lt;li>Linux System Administration: Experience configuring and troubleshooting packages, network settings, and performance optimizations.&lt;/li>
&lt;li>Scripting &amp;amp; Automation: Ability to write scripts (e.g., Bash, Python) to automate setup and deployment steps.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Difficulty&lt;/strong>: Moderate to Hard&lt;/p>
&lt;p>&lt;strong>Size&lt;/strong>: Medium&lt;/p>
&lt;p>&lt;strong>Mentor&lt;/strong>: &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/ken-raffenetti/">Ken Raffenetti&lt;/a>&lt;/p>
&lt;p>&lt;strong>Tasks&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>Disk Images with MPI Dependencies
&lt;ul>
&lt;li>Build base images with the correct versions of MPI (e.g., MPICH, OpenMPI) and any required libraries (e.g., GCC, network libraries).&lt;/li>
&lt;li>Ensure all packages are up to date and tested for compatibility with Chameleon’s bare metal and/or VM environments.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Cluster Setup Scripts
&lt;ul>
&lt;li>Develop lightweight scripts or Ansible playbooks that join new instances into an MPI cluster, configuring hostnames, SSH keys, and MPI runtime settings.&lt;/li>
&lt;li>Validate cluster functionality by running simple distributed “Hello World” tests and more advanced benchmarks (e.g., Intel MPI Benchmarks).&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Orchestration Template
&lt;ul>
&lt;li>Provide a Heat template (or similar) specifying the network configuration, instance counts, and environment variables for MPI.&lt;/li>
&lt;li>Enable easy parameterization of cluster size, disk images, and other variables so users can customize their setups on the fly.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Integration &amp;amp; Testing
&lt;ul>
&lt;li>Document best practices for launching and using the MPI images in Chameleon.&lt;/li>
&lt;li>Demonstrate reproducibility with multiple cluster sizes and workloads to ensure reliability.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul></description></item><item><title>Smart Environments – An AI System for Reproducible Custom Computing Environments</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/uchicago/envgym/</link><pubDate>Tue, 18 Feb 2025 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/uchicago/envgym/</guid><description>&lt;h2 id="overview">Overview&lt;/h2>
&lt;p>The complexity of environment setup and the expertise required to configure specialized software stacks can often hinder efforts to reproduce important scientific achievements in HPC and systems studies. Researchers often struggle with incomplete or ambiguous artifact descriptions that make assumptions about &amp;ldquo;common knowledge&amp;rdquo; that is actually specific domain expertise. When trying to reproduce experiments, reviewers may spend excessive time debugging environment inconsistencies rather than evaluating the actual research. These challenges are compounded when experiments need to run on different hardware configurations.&lt;/p>
&lt;p>This project seeks to address these fundamental reproducibility barriers by using AI to translate natural language environment requirements often used in papers or artifact descriptions into actionable, reproducible configurations—bridging the knowledge gap between experiment authors and reviewers while standardizing environment creation across different hardware platforms. We will develop an AI-driven system that automatically generates and configures reproducible computing environments based on artifact descriptions from conferences, Trovi artifacts on the &lt;a href="chameleoncloud.org">Chameleon&lt;/a> testbed, and other reliable sources for scientific experiment code and associated documentation. Leveraging Natural Language Processing (NLP), the system will allow researchers to describe desired environments in plain English, then map those descriptions onto predefined configuration templates. By simplifying environment creation and ensuring reproducibility, the system promises to eliminate duplicate setup efforts, accelerate research workflows, and promote consistent experimentation practices across diverse hardware.&lt;/p>
&lt;h2 id="key-outcomes">Key Outcomes&lt;/h2>
&lt;ul>
&lt;li>Working Prototype: A system that automatically generates machine images deployable on bare metal and VM instances, based on user-provided requirements.&lt;/li>
&lt;li>Comprehensive Documentation: Detailed user manuals, guides, and best practices tailored to researchers, ensuring a smooth adoption process.&lt;/li>
&lt;li>Live Demo: A demonstration environment (e.g., a web app or Jupyter notebook) that shows how to request, configure, and launch reproducible cloud environments on both hardware profiles.&lt;/li>
&lt;li>Long-Term Impact: Building blocks for future AI-driven automation of cloud infrastructure, reducing human error and enabling fast, repeatable research pipelines.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Topics&lt;/strong>: Reproducibility, AI &amp;amp; NLP, Cloud Computing, DevOps and Automation&lt;/p>
&lt;p>&lt;strong>Skills&lt;/strong>:&lt;/p>
&lt;ul>
&lt;li>Machine Learning / AI: Familiarity with NLP methods to interpret user requirements.&lt;/li>
&lt;li>Python: Primary language for backend services and cloud interactions.&lt;/li>
&lt;li>Cloud API Integration: Experience with OpenStack or similar APIs to provision and configure images on both bare metal and virtual machines.&lt;/li>
&lt;li>DevOps: Automated environment configuration, CI/CD workflows, and containerization.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Difficulty&lt;/strong>: Hard&lt;/p>
&lt;p>&lt;strong>Size&lt;/strong>: Large&lt;/p>
&lt;p>&lt;strong>Mentors&lt;/strong>: &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/paul-marshall/">Paul Marshall&lt;/a>&lt;/p>
&lt;p>&lt;strong>Tasks&lt;/strong>:&lt;/p>
&lt;ul>
&lt;li>Requirement Gathering &amp;amp; NLP Design
&lt;ul>
&lt;li>Research the specific needs of researchers building experimental setups.&lt;/li>
&lt;li>Design an NLP pipeline to parse plain-English descriptions (e.g., “I need Python 3.9, CUDA 11, and scikit-learn”) into environment “recipes.”&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Backend Environment Builder
&lt;ul>
&lt;li>Implement logic that converts parsed user requirements into machine-image definitions for bare metal and VM instances.&lt;/li>
&lt;li>Integrate with Chameleon’s APIs to provision servers, install software, and run configuration validation automatically.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Front-End &amp;amp; User Experience
&lt;ul>
&lt;li>Develop an intuitive web or CLI interface that researchers can use to capture experiment environment requirements.&lt;/li>
&lt;li>Provide real-time status updates during environment setup, along with meaningful error messages and quick-start templates.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Testing &amp;amp; Validation
&lt;ul>
&lt;li>Conduct end-to-end tests using diverse software stacks (e.g., HPC libraries, machine learning frameworks) on bare metal and VM instances.&lt;/li>
&lt;li>Ensure reproducibility by re-creating the same environment multiple times and comparing configurations.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Documentation &amp;amp; Demonstration
&lt;ul>
&lt;li>Produce user-facing documentation, including tutorials and best practices for researchers who frequently run experiments on Chameleon Cloud.&lt;/li>
&lt;li>Create a short live demo or screencast showcasing how to configure an environment for a specific research workflow.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul></description></item><item><title>Smart Environments – An AI System for Reproducible Custom Computing Environments</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/uchicago/smart-environments/</link><pubDate>Tue, 18 Feb 2025 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/uchicago/smart-environments/</guid><description>&lt;h2 id="overview">Overview&lt;/h2>
&lt;p>The complexity of environment setup and the expertise required to configure specialized software stacks can often hinder efforts to reproduce important scientific achievements in HPC and systems studies. Researchers often struggle with incomplete or ambiguous artifact descriptions that make assumptions about &amp;ldquo;common knowledge&amp;rdquo; that is actually specific domain expertise. When trying to reproduce experiments, reviewers may spend excessive time debugging environment inconsistencies rather than evaluating the actual research. These challenges are compounded when experiments need to run on different hardware configurations.&lt;/p>
&lt;p>This project seeks to address these fundamental reproducibility barriers by using AI to translate natural language environment requirements often used in papers or artifact descriptions into actionable, reproducible configurations—bridging the knowledge gap between experiment authors and reviewers while standardizing environment creation across different hardware platforms. We will develop an AI-driven system that automatically generates and configures reproducible computing environments based on artifact descriptions from conferences, Trovi artifacts on the &lt;a href="chameleoncloud.org">Chameleon&lt;/a> testbed, and other reliable sources for scientific experiment code and associated documentation. Leveraging Natural Language Processing (NLP), the system will allow researchers to describe desired environments in plain English, then map those descriptions onto predefined configuration templates. By simplifying environment creation and ensuring reproducibility, the system promises to eliminate duplicate setup efforts, accelerate research workflows, and promote consistent experimentation practices across diverse hardware.&lt;/p>
&lt;h2 id="key-outcomes">Key Outcomes&lt;/h2>
&lt;ul>
&lt;li>Working Prototype: A system that automatically generates machine images deployable on bare metal and VM instances, based on user-provided requirements.&lt;/li>
&lt;li>Comprehensive Documentation: Detailed user manuals, guides, and best practices tailored to researchers, ensuring a smooth adoption process.&lt;/li>
&lt;li>Live Demo: A demonstration environment (e.g., a web app or Jupyter notebook) that shows how to request, configure, and launch reproducible cloud environments on both hardware profiles.&lt;/li>
&lt;li>Long-Term Impact: Building blocks for future AI-driven automation of cloud infrastructure, reducing human error and enabling fast, repeatable research pipelines.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Topics&lt;/strong>: Reproducibility, AI &amp;amp; NLP, Cloud Computing, DevOps and Automation&lt;/p>
&lt;p>&lt;strong>Skills&lt;/strong>:&lt;/p>
&lt;ul>
&lt;li>Machine Learning / AI: Familiarity with NLP methods to interpret user requirements.&lt;/li>
&lt;li>Python: Primary language for backend services and cloud interactions.&lt;/li>
&lt;li>Cloud API Integration: Experience with OpenStack or similar APIs to provision and configure images on both bare metal and virtual machines.&lt;/li>
&lt;li>DevOps: Automated environment configuration, CI/CD workflows, and containerization.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Difficulty&lt;/strong>: Hard&lt;/p>
&lt;p>&lt;strong>Size&lt;/strong>: Large&lt;/p>
&lt;p>&lt;strong>Mentors&lt;/strong>: &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/paul-marshall/">Paul Marshall&lt;/a>&lt;/p>
&lt;p>&lt;strong>Tasks&lt;/strong>:&lt;/p>
&lt;ul>
&lt;li>Requirement Gathering &amp;amp; NLP Design
&lt;ul>
&lt;li>Research the specific needs of researchers building experimental setups.&lt;/li>
&lt;li>Design an NLP pipeline to parse plain-English descriptions (e.g., “I need Python 3.9, CUDA 11, and scikit-learn”) into environment “recipes.”&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Backend Environment Builder
&lt;ul>
&lt;li>Implement logic that converts parsed user requirements into machine-image definitions for bare metal and VM instances.&lt;/li>
&lt;li>Integrate with Chameleon’s APIs to provision servers, install software, and run configuration validation automatically.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Front-End &amp;amp; User Experience
&lt;ul>
&lt;li>Develop an intuitive web or CLI interface that researchers can use to capture experiment environment requirements.&lt;/li>
&lt;li>Provide real-time status updates during environment setup, along with meaningful error messages and quick-start templates.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Testing &amp;amp; Validation
&lt;ul>
&lt;li>Conduct end-to-end tests using diverse software stacks (e.g., HPC libraries, machine learning frameworks) on bare metal and VM instances.&lt;/li>
&lt;li>Ensure reproducibility by re-creating the same environment multiple times and comparing configurations.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Documentation &amp;amp; Demonstration
&lt;ul>
&lt;li>Produce user-facing documentation, including tutorials and best practices for researchers who frequently run experiments on Chameleon Cloud.&lt;/li>
&lt;li>Create a short live demo or screencast showcasing how to configure an environment for a specific research workflow.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul></description></item><item><title>Widgets for Python-chi in Jupyter</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/uchicago/jupyter-widgets/</link><pubDate>Tue, 18 Feb 2025 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/uchicago/jupyter-widgets/</guid><description>&lt;h2 id="overview">Overview&lt;/h2>
&lt;p>Reproducibility challenges in research extend beyond code and environments to the experimental workflow itself. When experiments involve dynamic resource allocation, monitoring, and reconfiguration, researchers often struggle to document these interactive steps in a way that others can precisely follow. The lack of structured workflow documentation and real-time feedback creates barriers for reviewers attempting to reproduce experiments, as they cannot easily verify whether their resource configurations match the original experiment&amp;rsquo;s state. This project addresses these challenges by developing interactive Jupyter widgets that make experiment resource management more visual, intuitive, and self-documenting—transforming ad-hoc command sequences into reproducible workflows that automatically log interactions and configuration changes while providing immediate visual feedback on experiment topology and resource states.&lt;/p>
&lt;p>As cloud researchers often work with Jupyter Notebooks for interactive data analysis and experimentation, the &lt;a href="https://python-chi.readthedocs.io/" target="_blank" rel="noopener">python-chi&lt;/a> library offers a powerful way to automate and control resources on &lt;a href="chameleoncloud.org">Chameleon Cloud&lt;/a>. This project will extend python-chi by adding interactive widgets specifically designed for use in Jupyter, empowering users to launch, monitor, and manage their experiments without leaving the notebook environment. By bringing visual and intuitive controls directly into the user’s workflow, we aim to improve both reproducibility and usability for complex resource management tasks.&lt;/p>
&lt;h2 id="key-outcomes">Key Outcomes&lt;/h2>
&lt;ul>
&lt;li>User-Friendly Jupyter Widgets: Develop a suite of widgets to visualize reserved resources, hardware availability, and experiment topologies in real time.&lt;/li>
&lt;li>Integrated Experiment Management: Enable researchers to orchestrate experiments (launch, configure, monitor) within a single, notebook-centric workflow.&lt;/li>
&lt;li>Enhanced Feedback &amp;amp; Usability: Provide clear, asynchronous status updates and resource reconfiguration progress, reducing confusion and user error.&lt;/li>
&lt;li>Improved Reproducibility: By automating and logging widget interactions, experiments become more traceable and easier to replicate.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Topics&lt;/strong>: Interactive Data Tools, Cloud Resource Management, DevOps &amp;amp; Automation, User Experience (UX)&lt;/p>
&lt;p>&lt;strong>Skills&lt;/strong>:&lt;/p>
&lt;ul>
&lt;li>Python &amp;amp; Jupyter: Experience creating custom Jupyter widgets, using ipywidgets or similar frameworks.&lt;/li>
&lt;li>Cloud Automation: Familiarity with how resources are provisioned, monitored, and deprovisioned on Chameleon.&lt;/li>
&lt;li>Frontend / GUI Development: Basic understanding of web technologies (HTML/CSS/JavaScript) can be helpful for widget design.&lt;/li>
&lt;li>Software Engineering &amp;amp; CI: Ability to version-control, test, and deploy Python packages.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Difficulty&lt;/strong>: Moderate&lt;/p>
&lt;p>&lt;strong>Size&lt;/strong>: Medium&lt;/p>
&lt;p>&lt;strong>Mentor&lt;/strong>: &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/michael-sherman/">Michael Sherman&lt;/a>, &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/mark-powers/">Mark Powers&lt;/a>&lt;/p>
&lt;p>&lt;strong>Tasks&lt;/strong>:&lt;/p>
&lt;ul>
&lt;li>Resource Visualization Widgets
&lt;ul>
&lt;li>Build custom widgets that show reserved resources (nodes, networks, storage) in Jupyter.&lt;/li>
&lt;li>Provide an interactive topology view for experiments, indicating node statuses and connections.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Experiment Setup &amp;amp; Execution
&lt;ul>
&lt;li>Add controls for launching and managing experiments directly from notebooks.&lt;/li>
&lt;li>Show feedback (e.g., progress bars, status messages) as resources are being allocated or reconfigured.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Hardware Availability &amp;amp; Status Tracking
&lt;ul>
&lt;li>Implement a widget that provides real-time data on Chameleon’s hardware availability (bare metal, VMs, GPU nodes, etc.).&lt;/li>
&lt;li>Allow users to filter or select specific resources based on current hardware states.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Usability &amp;amp; Feedback Loop
&lt;ul>
&lt;li>Gather user feedback on the widget designs and workflows.&lt;/li>
&lt;li>Refine the interface to minimize clicks, improve clarity, and reduce friction for common tasks.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul></description></item><item><title>Open Testbed for Reproducible Evaluation of Replicated Systems at the Edges</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/umass/edge-replication/</link><pubDate>Sat, 15 Feb 2025 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/umass/edge-replication/</guid><description>&lt;h2 id="project-description">Project Description&lt;/h2>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: Distributed systems&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: Java, Go, Python, Bash scripting, Linux, Docker.&lt;/li>
&lt;li>&lt;strong>Difficulty&lt;/strong>: Hard&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong>: Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors&lt;/strong>: &lt;a href="mailto:fikurnia@cs.umass.edu">Fadhil I. Kurnia&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Replication is commonly employed to improve system availability and reduce latency. By maintaining multiple copies, the system can continue operating even if some replicas fail, thereby ensuring consistent availability. Placing replicas closer to users further decreases latency by minimizing the distance data must travel. A typical illustration of these advantages is a Content Delivery Network (CDN), where distributing content to edge servers can yield latencies of under 10 milliseconds when users and contents are in the same city.&lt;/p>
&lt;p>In recent times, numerous edge datastores have emerged, allowing dynamic data to be served directly from network-edge replicas. Each of these replicated systems may employ different coordination protocols to synchronize replicas, leading to varied performance and consistency characteristics. For instance, Workers KV relies on a push-based coordination mechanism that provides eventual consistency, whereas Cloudflare Durable Objects and Turso deliver stronger consistency guarantees. Additionally, researchers have introduced various coordination protocols—such as SwiftPaxos, EPaxos, OPaxos, WPaxos, Raft, PANDO, and QuePaxa—each exhibiting its own performance profile, especially when being used in geo-distributed deployment.&lt;/p>
&lt;p>This project aims to develop an open testbed for evaluating replicated systems and their coordination protocols under edge deployment. Currently, researchers face challenges in fairly comparing different replicated systems, as they often lack control over replica placement. Many previous studies on coordination protocols and replicated systems relied on mock implementations, particularly for well-known systems like Dynamo and Spanner, which are not open source. An open testbed would provide a standardized environment where researchers can compare various replicated systems, classes of coordination protocols, and specific protocol implementations using common benchmarks. Since the performance of replicated systems and coordination protocols varies depending on the application, workload, and replica placement, this testbed would offer a more systematic and fair evaluation framework. Furthermore, by enabling easier testing and validation, the testbed could accelerate the adoption of research prototypes in the industry.&lt;/p>
&lt;h2 id="project-deliverables">Project Deliverables&lt;/h2>
&lt;ul>
&lt;li>Compilation of traces and applications from various open traces and open benchmarks.&lt;/li>
&lt;li>Distributed workload generator to run the traces and applications.&lt;/li>
&lt;li>Test framework to simulate latency of 100s of edge servers for measurement.&lt;/li>
&lt;li>Open artifact of the traces, applications, workload generator, and test framework, published on Github.&lt;/li>
&lt;/ul></description></item><item><title>Vector Embeddings Dataset</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/ucsc/embeddings/</link><pubDate>Tue, 11 Feb 2025 13:00:00 -0800</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/ucsc/embeddings/</guid><description>&lt;h3 id="vector-embeddings-dataset">Vector Embeddings Dataset&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> &lt;code>Vector Embeddings&lt;/code> &lt;code>LLMs&lt;/code> &lt;code>Transformers&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> software development, apis, scripting, python&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Moderate&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Medium or Large (175 or 350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="mailto:jayjeetc@ucsc.edu">Jayjeet Chakraborty&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>To benchmark vector search algorithms (aka ANN algorithms), there are several datasets available but none of
them represent actual real world workloads. This is because they usually have small vectors of only a few hundred
dimensions. For vector search experiments to represent real world workloads, we want to have datasets with
several thousand dimensions like what is generated by OpenAIs text-embedding models. This project aims to create a
dataset with 1B embeddings from a wikipedia dataset using open source models. Ideally, we will have 3 versions of this dataset, with 1024, 4096, and 8192 sized embeddings to start with.&lt;/p></description></item><item><title>Brahma</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/ucsc/brahma/</link><pubDate>Tue, 11 Feb 2025 12:34:56 -0700</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/ucsc/brahma/</guid><description>&lt;p>Brahma is a lightweight framework for building collaborative and cross platform WebXR based experiences using Three.js for the front-end and a simple Node.js/WebSocket script on the backend. It was created at the Social Emotional Technology Lab to facilitate the development of novel collaborative interfaces and virtual environments capable of loading scientific datasets. For example, in the featured image, multiple avatars are exploring a &lt;a href="https://www.science.org/doi/10.1126/science.adf0566" target="_blank" rel="noopener">marine science dataset related to seal migration paths&lt;/a> overlaid on NOAA bathymetry and telemetry data.&lt;/p>
&lt;p>It addresses a gap where prior open-source collaborative VR is no longer available such as the defunct &lt;a href="https://support.mozilla.org/en-US/kb/end-support-mozilla-hubs" target="_blank" rel="noopener">Mozilla Hubs&lt;/a> or proprietary engine based frameworks such as &lt;a href="https://ubiq.online/" target="_blank" rel="noopener">Ubiq&lt;/a>. Furthermore, it uses very little computational resources to run and develop, enabling creators who may not have a powerful computer to run a game engine in order to develop a networked VR application.&lt;/p>
&lt;p>This project involves the first public release of Brahma&amp;ndash; creating a lightweight open source framework that facilitates multi-user games, scientific visualizations and other applications. In order to do so, we need to formalize the framework, provide documentation, and implement key examples so that the open source tool can be extensible and serve a wider community.&lt;/p>
&lt;p>Mentees can expect to learn best practices for VR development and testing and gain familiarity with full stack development practices. Mentees should have access and experience using a VR headset.&lt;/p>
&lt;h1 id="brahma--protoocol-release-and-validation">Brahma / Protoocol Release and Validation&lt;/h1>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> &lt;code>Web Development&lt;/code> &lt;code>Software Architecture&lt;/code> &lt;code>VR Development&lt;/code> &lt;code>Computer Graphics&lt;/code> &lt;code>Cloud Platforms&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> Node.js, Three.js&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Moderate-Challenging&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="mailto:sghosh17@ucsc.edu">Samir Ghosh&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>The proposed work includes three phases, primarily working on backend code, and API design. In the first phase, to gain familiarity, the mentee will be running and testing the Brahma backend on a variety of cloud platforms such as AWS, Google Cloud, and Azure&amp;ndash; and learning best methods for documentation in the process. Then, in the second phase, the mentee will work on formalizing the protocol for avatar embodiment and other multi-user interfaces, testing the application with a simple pong game. In the third phase, the mentee will address telemetry, logging, and analysis considerations.&lt;/p>
&lt;p>This project is well suited for someone who has interest in virtual reality, especially social VR, multi-user, or collaborative applications&lt;/p>
&lt;h1 id="brahma--allocentric-webxr-interfaces">Brahma / Allocentric WebXR Interfaces&lt;/h1>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> &lt;code>Web Development&lt;/code> &lt;code>VR Development&lt;/code> &lt;code>Computer Graphics&lt;/code> &lt;code>UX/UI&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> Three.js, GLSL, WebSocket&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Moderate-Challenging&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Medium or large (175 or 350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="mailto:sghosh17@ucsc.edu">Samir Ghosh&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>The proposed work primarily involves front-end code and VR interface design. In the first phase, the mentee will gain familiarity with best practices for WebXR development through the implementation and documentation of simple interaction patterns. Then, the mentee will implement a simple multi-user pong game to learn about allocentric interfaces. In the final phase of the project, the mentee will design and implement one or more allocentric interface of their choosing.&lt;/p>
&lt;p>This project is well suited for someone who has interest in virtual reality, especially aspects of graphics and interaction design.&lt;/p></description></item><item><title>WildBerryEye</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/ucsc/wildberryeye/</link><pubDate>Tue, 11 Feb 2025 10:15:56 -0700</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/ucsc/wildberryeye/</guid><description>&lt;p>WildBerryEye leverages Raspberry Pi and YOLO object detection models to monitor pollinizers like bees and hummingbirds visiting flowers. This initiative aims to enhance environmental research by automating data collection and analysis of pollinator activities, which are crucial for ecological assessments and conservation efforts. The project utilizes video data provided by &lt;a href="https://www.researchgate.net/profile/Rossana-Maguina-Conde" target="_blank" rel="noopener">Dr. Rossana Maguiña&lt;/a>, processed through advanced machine learning techniques to accurately identify and track pollinator interactions in natural habitats.&lt;/p>
&lt;h3 id="develop-web-based-user-interface">Develop web-based user interface&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> &lt;code>Full Stack Development&lt;/code> &lt;code>React&lt;/code> &lt;code>Flask&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> Experience with full stack development and real time processing&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Moderate to Challenging&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Medium or large (175 or 350 hrs)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="mailto:caiespin@ucsc.edu">Carlos Isaac Espinosa Ramirez&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Develop a clean and intuitive web-based interface for WildBerryEye, ensuring ease of use for researchers and contributors. The platform should present real-time pollinator detection results, facilitate data visualization, and allow users to interact with system settings efficiently. The website must be accessible, visually appealing, and optimized for both desktop and mobile users, avoiding unnecessary complexity or intrusive elements.&lt;/p>
&lt;p>Specific tasks:&lt;/p>
&lt;ul>
&lt;li>Frontend Development: Continue development to enhance the user interface using React and CSS, ensuring a responsive and user-friendly design.&lt;/li>
&lt;li>Backend Development: Expand functionality using Flask, focusing on efficient API endpoints and seamless interaction with the frontend (excluding database implementation).&lt;/li>
&lt;li>Real-Time Communication: Implement and refine real-time updates between the frontend and backend to enhance system responsiveness.&lt;/li>
&lt;li>Usability &amp;amp; Design Optimization: Research and propose improvements to the system’s usability, design, and overall user experience.&lt;/li>
&lt;/ul></description></item><item><title>AI Data Readiness Inspector (AIDRIN)</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/lbl/aidrin/</link><pubDate>Tue, 11 Feb 2025 10:15:00 -0700</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/lbl/aidrin/</guid><description>&lt;p>Garbage In Garbage Out (GIGO) is a universally agreed quote by computer scientists from various domains, including Artificial Intelligence (AI). As data is the fuel for AI, models trained on low-quality, biased data are often ineffective. Computer scientists who use AI invest considerable time and effort in preparing the data for AI.&lt;/p>
&lt;p>&lt;a href="https://arxiv.org/pdf/2406.19256" target="_blank" rel="noopener">AIDRIN&lt;/a> (AI Data Readiness INspector) is a framework that provides a quantifiable assessment of the readiness of data for AI processes, covering a broad range of readiness dimensions available in the literature. AIDRIN uses metrics in traditional data quality assessment, such as completeness, outliers, and duplicates, for data evaluation. Furthermore, AIDRIN uses metrics specific to assess data for AI, such as feature importance, feature correlations, class imbalance, fairness, privacy, and FAIR (Findability, Accessibility, Interoperability, and Reusability) principle compliance. AIDRIN provides visualizations and reports to assist data scientists in further investigating the readiness of data.&lt;/p>
&lt;h3 id="aidrin-visualizations-and-science-gateway">AIDRIN Visualizations and Science Gateway&lt;/h3>
&lt;p>The proposed work will include improvements in the AIDRIN framework to (1) enhance, extend, and optimize the visualizations of metrics related to all six pillars of AI data readiness and (2) set up a science gateway on NERSC or AWS cloud service.&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> &lt;code>data readiness&lt;/code> &lt;code>AI&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> Python, C/C++, good communicator&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Moderate&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/jean-luca-bez/">Jean Luca Bez&lt;/a> and &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/suren-byna/">Suren Byna&lt;/a>&lt;/li>
&lt;/ul></description></item><item><title>h5bench with AI workloads</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/lbl/h5bench-ai/</link><pubDate>Tue, 11 Feb 2025 10:15:00 -0700</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/lbl/h5bench-ai/</guid><description>&lt;p>&lt;a href="https://github.com/hpc-io/h5bench" target="_blank" rel="noopener">h5bench&lt;/a> is a suite of parallel I/O benchmarks or kernels representing I/O patterns that are commonly used in HDF5 applications on high performance computing systems. h5bench measures I/O performance from various aspects, including the I/O overhead, and observed I/O rate.&lt;/p>
&lt;p>Parallel I/O is a critical technique for moving data between compute and storage subsystems of supercomputers. With massive amounts of data produced or consumed by compute nodes, high-performant parallel I/O is essential. I/O benchmarks play an important role in this process; however, there is a scarcity of I/O benchmarks representative of current workloads on HPC systems. Toward creating representative I/O kernels from real-world applications, we have created h5bench, a set of I/O kernels that exercise HDF5 I/O on parallel file systems in numerous dimensions. Our focus on HDF5 is due to the parallel I/O library&amp;rsquo;s heavy usage in various scientific applications running on supercomputing systems. The various tests benchmarked in the h5bench suite include I/O operations (read and write), data locality (arrays of basic data types and arrays of structures), array dimensionality (1D arrays, 2D meshes, 3D cubes), I/O modes (synchronous and asynchronous). h5bench measurements can be used to identify performance bottlenecks and their root causes and evaluate I/O optimizations. As the I/O patterns of h5bench are diverse and capture the I/O behaviors of various HPC applications, this study will be helpful to the broader supercomputing and I/O community.&lt;/p>
&lt;h3 id="h5bench-with-ai-workloads">h5bench with AI workloads&lt;/h3>
&lt;p>The proposed work will include (1) analyzing and characterizing AI workloads that rely on HDF5 datasets, (2) extracting a kernel of their I/O operations, and (3) implementing and validating the kernel in h5bench.&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> &lt;code>I/O&lt;/code> &lt;code>HPC&lt;/code> &lt;code>benchmarking&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> Python, C/C++, good communicator&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Moderate&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/jean-luca-bez/">Jean Luca Bez&lt;/a> and &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/suren-byna/">Suren Byna&lt;/a>&lt;/li>
&lt;/ul></description></item><item><title>HAgent</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/ucsc/hagent/</link><pubDate>Tue, 11 Feb 2025 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/ucsc/hagent/</guid><description>&lt;p>&lt;a href="https://github.com/masc-ucsc/hagent" target="_blank" rel="noopener">HAgent&lt;/a> is a platform to build AI hardware agent engine to support multiple components in chip design, such as code generation, verification, debugging, and tapeout.&lt;/p>
&lt;p>HAgent is build as a compiler for for Hardware Agents, it interfaces with
typical EDA tools like compilers, synthesis, and verification. There are
several projects around enhancing HAgent.&lt;/p>
&lt;h3 id="bugfarm-hagent-step">BugFarm hagent step&lt;/h3>
&lt;p>&lt;strong>Objective&lt;/strong>: Develop a HAgent step (pass) to create bugs in a given design.&lt;/p>
&lt;p>&lt;strong>Description&lt;/strong>: Using LLMs (Hagent APIs), the goal is to add &amp;ldquo;bugs&amp;rdquo; to input Verilog design.
The goal is for other tools passes that need to fix bugs, to use this
infrastructure as a bug generator. There is a MCY
(&lt;a href="https://github.com/YosysHQ/mcy" target="_blank" rel="noopener">https://github.com/YosysHQ/mcy&lt;/a>) that does something similar but it does not
use verilog and create a very different Verilog output. The BugFarm is supposed
to have somewhat similar functionality but edit the Verilog directly which
results in a code with just a few edits. Like MCY, there has to be a step to confirm that
the change affects results. The project should benchmarks and compare with MCY.&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Skills Needed:&lt;/strong> Python, Verilog, and understand agents&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Medium&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Medium&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/jose-renau/">Jose Renau&lt;/a>, &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/farzaneh-rabiei-kashanaki/">Farzaneh Rabiei Kashanaki&lt;/a>&lt;/li>
&lt;/ul>
&lt;h3 id="hdeval-competition-repository">HDEval Competition Repository&lt;/h3>
&lt;p>&lt;strong>Objective&lt;/strong>: Create a platform for HDL programming challenges and community engagement.&lt;/p>
&lt;p>&lt;strong>Description&lt;/strong>: Develop a repository where users can solve HDL problems in Verilog, Chisel, PyRTL, etc. Implement a points system for successful solutions. Allow users to submit new problems (code, specifications, verification, and tests) that are not easily solvable by LLMs. Automate solution testing and provide feedback on submissions.&lt;/p>
&lt;p>The submissions consist of 4 components: code, specification, verification, and tests. It should be possible to submit also examples of bugs in code/specification/verification/tests during the design.&lt;/p>
&lt;p>If the code is different from Verilog, it should include the HDL (chisel, PyRTL,&amp;hellip;) and also the Verilog.&lt;/p>
&lt;p>The specification is free form. For any given specification, an expert on the area should be able to generate code, verification, and tests. Similarly, from any pair. Any expert should be able to generate the rest. For example, from verification and tests, it should be able to generate the code and specification.&lt;/p>
&lt;p>Typical specifications consist of a plan, API, and a sample usage.&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Skills Needed:&lt;/strong> Web design, some hardware understanding&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Medium&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Medium&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/jose-renau/">Jose Renau&lt;/a>, &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/farzaneh-rabiei-kashanaki/">Farzaneh Rabiei Kashanaki&lt;/a>&lt;/li>
&lt;/ul>
&lt;h3 id="integrate-silicon-compiler">Integrate Silicon Compiler&lt;/h3>
&lt;p>&lt;strong>Objective&lt;/strong>: &lt;a href="https://github.com/siliconcompiler/siliconcompiler" target="_blank" rel="noopener">Silicon Compiler&lt;/a> is an open-source Python library that allows to interface with many EDA tools. The idea is to integrate it with HAgent to allow prompts/queries to
interface with it.&lt;/p>
&lt;p>&lt;strong>Description&lt;/strong>: The agentic component requires to check with silicon compiler
that the generated Python compiles but also that has reasonable parameters.
This will require a react loop for compiler errors, and likely a judge loop for
testing for reasonable options/flow with feedback from execution. Since there
is not much training examples, it will require a few shot with a database to
populate context accordingly.&lt;/p>
&lt;p>The end result should allow to select different tools and options trhough silicon compiler.&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Skills Needed:&lt;/strong> Backend chip design&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> High&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Medium&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/jose-renau/">Jose Renau&lt;/a>&lt;/li>
&lt;/ul>
&lt;h3 id="comodore-64-or-msx-or-gameboy">Comodore 64 or MSX or Gameboy&lt;/h3>
&lt;p>&lt;strong>Objective&lt;/strong>: Create a prompt-only specification to build a hardware
accelerated for the target platform (Comodore 64, MSX or Gameboy). The
generated code should focus on Verilog, but it is fine to also target some
other HDL. In all the cases, the project should include a generated Verilog
integrated with some emulator for verification.&lt;/p>
&lt;p>&lt;strong>Description&lt;/strong>: Using &lt;a href="https://github.com/masc-ucsc/hagent" target="_blank" rel="noopener">Hagent&lt;/a>, create an
&lt;a href="https://github.com/masc-ucsc/hdeval" target="_blank" rel="noopener">HDLEval&lt;/a> benchmark (set of prompts) that
provide the necessary information to create the Verilog implementation. HDLEval
prompts usually consists of a high-level PLAN or specification, an API to
implement, and a few examples of usage for the given API.&lt;/p>
&lt;p>The result of running the bencharmk, a generated Verilog runs program in the
emulator and the Verilog to compare correctness. The platform should have an
already existing emulator &lt;a href="https://vice-emu.sourceforge.io/" target="_blank" rel="noopener">vice-emu&lt;/a> or
&lt;a href="https://mgba.io/" target="_blank" rel="noopener">mGBA&lt;/a> to perform cosimulation against the generated
specification.&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Skills Needed:&lt;/strong> Verilog for front-end design&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> High&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Large (175 or 350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/jose-renau/">Jose Renau&lt;/a>&lt;/li>
&lt;/ul></description></item><item><title>Scenic: A Language for Design and Verification of Autonomous Cyber-Physical Systems</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/ucsc/scenic/</link><pubDate>Tue, 11 Feb 2025 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/ucsc/scenic/</guid><description>&lt;p>&lt;a href="https://scenic-lang.org/" target="_blank" rel="noopener">Scenic&lt;/a> is a probabilistic programming language for the design and verification of autonomous cyber-physical systems like self-driving cars.
Scenic allows users to define &lt;em>scenarios&lt;/em> for testing or training their system by putting a probability distribution on the system&amp;rsquo;s environment: the positions, orientations, and other properties of objects and agents, as well as their behaviors over time.
Sampling these scenarios and running them in a simulator yields synthetic data which can be used to train or test a system.
Since Scenic was released open-source in 2019, our group and many others in academia have used Scenic to find, diagnose, and fix bugs in autonomous cars, aircraft, robots, and other kinds of systems.
In industry, it is being used by companies including Boeing, Meta, Deutsche Bahn, and Toyota in domains spanning autonomous driving, aviation, household robotics, railways, maritime, and virtual reality.&lt;/p>
&lt;p>Our long-term goal is for Scenic to become a widely-used common representation and toolkit supporting the entire design lifecycle of AI-based cyber-physical systems.
Towards this end, we have many summer projects available, ranging from adding new application domains to working on the Scenic compiler and sampler:&lt;/p>
&lt;ol>
&lt;li>3D Driving Scenarios&lt;/li>
&lt;li>A Library for Aviation Scenarios&lt;/li>
&lt;li>Interfacing Scenic to new simulators&lt;/li>
&lt;li>Optimizing and parallelizing Scenic&lt;/li>
&lt;li>Improvements and infrastructure for the VerifAI toolkit&lt;/li>
&lt;/ol>
&lt;p>See the sections below for details.&lt;/p>
&lt;h3 id="3d-driving-scenarios">3D Driving Scenarios&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> &lt;code>Autonomous Driving&lt;/code> &lt;code>3D modeling&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> Python; basic vector geometry&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Moderate&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Medium or Large (175 or 350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/daniel-fremont/">Daniel Fremont&lt;/a>, &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/eric-vin/">Eric Vin&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Scenic scenarios written to test autonomous vehicles use the &lt;a href="https://docs.scenic-lang.org/en/latest/modules/scenic.domains.driving.html" target="_blank" rel="noopener">driving domain&lt;/a>, a Scenic library defining driving-specific concepts including cars, pedestrians, roads, lanes, and intersections.
The library extracts information about road networks, such as the shapes of lanes, from files in the standard &lt;a href="https://www.asam.net/standards/detail/opendrive/" target="_blank" rel="noopener">OpenDRIVE&lt;/a> format.
Currently, we only generate 2D polygons for lanes, throwing away 3D information.
While this suffices for many driving scenarios, it means we cannot properly model overpasses (the roads appear to overlap) or test driving scenarios where 3D geometry is important, such as hilly terrain.&lt;/p>
&lt;p>The goals of this project are to extend our road network library to generate 3D meshes (instead of 2D polygons) for roads, write new Scenic scenarios which use this new capability, and (if time allows) test autonomous driving software using them.&lt;/p>
&lt;h3 id="a-library-for-aviation-scenarios">A Library for Aviation Scenarios&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> &lt;code>Autonomous Aircraft&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> Python; ideally some aviation experience&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Moderate&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Medium or Large (175 or 350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/daniel-fremont/">Daniel Fremont&lt;/a>, &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/eric-vin/">Eric Vin&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>We have used Scenic to find, diagnose, and fix bugs in software for autonomous aircraft: in particular, &lt;a href="https://arxiv.org/abs/2005.07173" target="_blank" rel="noopener">this paper&lt;/a> studied a neural network-based automated taxiing system using the &lt;a href="https://www.x-plane.com/" target="_blank" rel="noopener">X-Plane&lt;/a> flight simulator.
We also have prototype interfaces to &lt;a href="https://microsoft.github.io/AirSim/" target="_blank" rel="noopener">AirSim&lt;/a> and &lt;a href="https://www.flightsimulator.com/" target="_blank" rel="noopener">Microsoft Flight Simulator&lt;/a>.
However, our experiments so far have mainly focused on simple scenarios involving a single aircraft.&lt;/p>
&lt;p>The goal of this project is to develop an &lt;em>aviation library&lt;/em> for Scenic (like the driving domain mentioned in the previous project) which will allow users to create complex aviation scenarios in a simulator-agnostic way.
The library would define concepts for aircraft, flight paths, weather, etc. and allow importing real-world data about these.
The student would demonstrate the library&amp;rsquo;s functionality by writing some example scenarios and testing either simple aircraft controllers or (if time allows) ML-based flight software.&lt;/p>
&lt;h3 id="interfacing-scenic-to-new-simulators">Interfacing Scenic to New Simulators&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> &lt;code>Simulation&lt;/code> &lt;code>Autonomous Driving&lt;/code> &lt;code>Robotics&lt;/code> &lt;code>LLMs&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> Python&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Moderate&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Medium or Large (175 or 350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/daniel-fremont/">Daniel Fremont&lt;/a>, &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/eric-vin/">Eric Vin&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Scenic is designed to be &lt;a href="https://docs.scenic-lang.org/en/latest/new_simulator.html" target="_blank" rel="noopener">easily-interfaced to new simulators&lt;/a>.
Depending on student interest, we could pick a simulator which would open up new kinds of applications for Scenic and write an interface for it.
Some possibilities include:&lt;/p>
&lt;ul>
&lt;li>The &lt;a href="https://github.com/tier4/AWSIM" target="_blank" rel="noopener">AWSIM&lt;/a> driving simulator (to allow testing the &lt;a href="https://autoware.org/" target="_blank" rel="noopener">Autoware&lt;/a> open-source autonomous driving software stack)&lt;/li>
&lt;li>The &lt;a href="https://www.coppeliarobotics.com/" target="_blank" rel="noopener">CoppeliaSim&lt;/a> robotics simulator&lt;/li>
&lt;li>NVIDIA&amp;rsquo;s &lt;a href="https://github.com/NVIDIA/Cosmos" target="_blank" rel="noopener">Cosmos&lt;/a>, an LLM which generates videos from text prompts&lt;/li>
&lt;li>NVIDIA&amp;rsquo;s &lt;a href="https://www.nvidia.com/en-us/omniverse/" target="_blank" rel="noopener">Omniverse&lt;/a> (various applications, e.g. simulating virtual factories)&lt;/li>
&lt;li>Various simulators for which we have prototype interfaces that could be generalized and made more usable, including &lt;a href="https://mujoco.org/" target="_blank" rel="noopener">MuJoCo&lt;/a> and &lt;a href="https://developer.nvidia.com/isaac/sim" target="_blank" rel="noopener">Isaac Sim&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>The goal of the project would be to create an interface between Scenic and the new simulator and write scenarios demonstrating it.
If time allows, we could do a case study on a realistic system for publication at an academic conference.&lt;/p>
&lt;h3 id="optimizing-and-parallelizing-scenic">Optimizing and Parallelizing Scenic&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> &lt;code>Optimization&lt;/code> &lt;code>Parallelization&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> Python&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Moderate&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Medium or Large (175 or 350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/daniel-fremont/">Daniel Fremont&lt;/a>, &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/eric-vin/">Eric Vin&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Large-scale testing with Scenic, when one wants to generate thousands of simulations, can be very computationally-expensive.
In some cases, the bottleneck is the simulator, and being able to easily run multiple simulations in parallel would greatly increase scalability.
In others, Scenic itself spends substantial time trying to sample scenarios satisfying all the given constraints.&lt;/p>
&lt;p>This project would explore a variety of approaches to speeding up scene and simulation generation in Scenic.
Some possibilities include:&lt;/p>
&lt;ul>
&lt;li>Parallelizing scene generation and simulation (e.g. using &lt;a href="https://github.com/ray-project/ray" target="_blank" rel="noopener">Ray&lt;/a>)&lt;/li>
&lt;li>Systematically profiling real-world Scenic programs to characterize the main bottlenecks and propose optimizations&lt;/li>
&lt;li>JIT compiling Scenic&amp;rsquo;s internal sampling code (e.g. using &lt;a href="https://numba.pydata.org/" target="_blank" rel="noopener">Numba&lt;/a>)&lt;/li>
&lt;/ul>
&lt;h3 id="improvements-and-infrastructure-for-the-verifai-toolkit">Improvements and Infrastructure for the VerifAI Toolkit&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> &lt;code>DevOps&lt;/code> &lt;code>Documentation&lt;/code> &lt;code>APIs&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> Python&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Easy&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Medium or Large (175 or 350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/daniel-fremont/">Daniel Fremont&lt;/a>, &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/eric-vin/">Eric Vin&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>&lt;a href="https://github.com/BerkeleyLearnVerify/VerifAI" target="_blank" rel="noopener">VerifAI&lt;/a> is a toolkit for design and analysis of AI-based systems that builds on top of Scenic.
It adds among other features the ability to perform &lt;em>falsification&lt;/em>, intelligently searching for scenarios that will cause a system to behave in an undesirable way.&lt;/p>
&lt;p>The goal of this project is to improve VerifAI&amp;rsquo;s development infrastructure, documentation, and ease of use, which are currently relatively poor compared to Scenic.
Specific tasks could include:&lt;/p>
&lt;ul>
&lt;li>Setting up continuous integration (CI) on GitHub&lt;/li>
&lt;li>Creating processes to help users/developers submit issues and PRs and deal with them in a timely manner&lt;/li>
&lt;li>Writing more documentation, including tutorials and examples (not only for end users of VerifAI but those wanting to develop custom falsification components, for example)&lt;/li>
&lt;li>Refactoring VerifAI&amp;rsquo;s API to make it easier to use and extend&lt;/li>
&lt;/ul></description></item><item><title>Architecting the Future of Scientific Data: Multi-Site Streaming Without Compromise</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/anl/scistream/</link><pubDate>Mon, 10 Feb 2025 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/anl/scistream/</guid><description>&lt;p>Data is generated at ever-increasing rates, yet it’s often processed more slowly than it’s collected. Scientific instruments frequently operate below their full capacity or discard
valuable data due to network bottlenecks, security domain mismatches, and insufficient real-time processing capabilities.&lt;/p>
&lt;p>&lt;a href="https://github.com/scistream/scistream-proto" target="_blank" rel="noopener">SciStream&lt;/a> reimagines how scientific data moves across modern research infrastructure by providing a framework for high-speed (+100Gbps)
memory-to-memory streaming that doesn’t compromise on security. Whether connecting scientific instruments to analysis clusters or bridging across institutional boundaries, SciStream provides the foundation for next-generation scientific
workflows.&lt;/p>
&lt;p>Building on our &lt;a href="https://dl.acm.org/doi/abs/10.1145/3502181.3531475" target="_blank" rel="noopener">published research&lt;/a>, we’re now expanding the framework’s capabilities through open-source development and community
collaboration. These projects offer an opportunity for
students to gain hands-on experience with cutting-edge networking and security technologies used in high-performance computing (HPC), cloud infrastructure, and large-scale scientific
experiments.&lt;/p>
&lt;h3 id="scistream-securebench-a-framework-for-benchmarking-security-protocols-in-scientific-data-streaming">SciStream-SecureBench: A Framework for Benchmarking Security Protocols in Scientific Data Streaming&lt;/h3>
&lt;p>&lt;strong>Project Idea Description:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: Security Protocols, Network Performance, Data Streaming, Reproducibility, High-throughput Computing&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: Python, Scripting, Linux, Network Protocol Analysis, Containers, Benchmarking tools&lt;/li>
&lt;li>&lt;strong>Difficulty&lt;/strong>: Medium&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong>: Large (350) hours&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/joaquin-chung/">Joaquin Chung&lt;/a>, &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/flavio-castro/">Flavio Castro&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Ever wondered why large scientific experiments need to move massive amounts of data securely and quickly? While TLS and SSH are standard for secure data transfer,
there’s a surprising lack of benchmarks that evaluate their performance in high-speed scientific workflows. This project aims to fill this gap by developing a benchmarking suite that
measures how different security configurations impact real-time scientific data streaming.&lt;/p>
&lt;h3 id="specific-tasks-of-the-project-include">&lt;strong>Specific Tasks of the Project Include&lt;/strong>&lt;/h3>
&lt;ul>
&lt;li>Developing benchmarking tools that measure key security performance metrics like handshake latency, throughput stability, and computational overhead.&lt;/li>
&lt;li>Running &lt;strong>real-world experiments&lt;/strong> on research testbeds (Chameleon, FABRIC) to simulate scientific data patterns.&lt;/li>
&lt;li>Automating comparative analysis between TLS and SSH, with focus on streaming-specific metrics like &lt;strong>time-to-first-byte and sustained throughput&lt;/strong>.&lt;/li>
&lt;li>Documenting best practices for security protocol selection in high-performance streaming.&lt;/li>
&lt;/ul>
&lt;h3 id="why-this-matters-for-your-career">&lt;strong>Why This Matters for Your Career&lt;/strong>&lt;/h3>
&lt;ul>
&lt;li>Gain expertise in &lt;strong>network security and performance analysis&lt;/strong>, highly valued in cybersecurity, cloud computing, and HPC.&lt;/li>
&lt;li>Work on a &lt;strong>real research challenge&lt;/strong> with potential for publication.&lt;/li>
&lt;/ul>
&lt;h3 id="scistream-streambench-comparative-analysis-of-scientific-streaming-frameworks">SciStream-StreamBench: Comparative Analysis of Scientific Streaming Frameworks&lt;/h3>
&lt;p>&lt;strong>Project Idea Description:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: Data Streaming Protocols, Network Performance, Benchmarking, Distributed Systems, Real-time Computing&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: Python, ZeroMQ, EPICS/PVAccess, Linux, Performance Analysis, Visualization&lt;/li>
&lt;li>&lt;strong>Difficulty&lt;/strong>: Medium&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong>: Large (350) hours&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/joaquin-chung/">Joaquin Chung&lt;/a>, &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/flavio-castro/">Flavio Castro&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Scientific experiments generate enormous amounts of streaming data, but how do we choose the best framework for handling it efficiently? Despite the widespread use of ZeroMQ and
&lt;a href="https://dl.acm.org/doi/10.1145/3624062.3624610" target="_blank" rel="noopener">PVApy&lt;/a>,
there’s little systematic benchmarking comparing their performance. This project will develop &lt;strong>real-world benchmarks&lt;/strong> to evaluate how different frameworks handle scientific data in
&lt;strong>high-speed environments&lt;/strong>.&lt;/p>
&lt;h3 id="the-specific-tasks-of-the-project-include">&lt;strong>The Specific Tasks of the Project Include&lt;/strong>&lt;/h3>
&lt;ul>
&lt;li>Designing benchmarking methodologies to assess key performance metrics like &lt;strong>synchronization overhead, time-to-first-data, and throughput stability&lt;/strong>.&lt;/li>
&lt;li>Developing a test harness that simulates real-world streaming conditions (network variability, concurrent streams, dynamic data rates).&lt;/li>
&lt;li>Running experiments on &lt;strong>Chameleon and FABRIC testbeds&lt;/strong>.&lt;/li>
&lt;li>Automating data collection and visualization to highlight performance trends.&lt;/li>
&lt;li>Documenting best practices and framework-specific optimizations.&lt;/li>
&lt;/ul>
&lt;h3 id="why-this-matters-for-your-career-1">&lt;strong>Why This Matters for Your Career&lt;/strong>&lt;/h3>
&lt;ul>
&lt;li>Get hands-on experience with &lt;strong>real-time data processing&lt;/strong> and &lt;strong>network performance analysis&lt;/strong>.&lt;/li>
&lt;li>Learn benchmarking techniques useful for &lt;strong>distributed systems, cloud computing, and high-performance networking&lt;/strong>.&lt;/li>
&lt;/ul>
&lt;h3 id="scistream-quic-next-generation-proxy-architecture-for-scientific-data-streaming">SciStream-QUIC: Next-Generation Proxy Architecture for Scientific Data Streaming&lt;/h3>
&lt;p>&lt;strong>Project Idea Description:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: QUIC Protocol, Network Proxies, Performance Analysis, Protocol Design, Hardware Acceleration&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: Python/C++, Network Programming, QUIC (quiche/aioquic), Linux, Performance Analysis&lt;/li>
&lt;li>&lt;strong>Difficulty&lt;/strong>: Hard&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong>: Large (350) hours&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/joaquin-chung/">Joaquin Chung&lt;/a>, &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/flavio-castro/">Flavio Castro&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Ever wondered how YouTube loads videos faster than traditional web pages? That’s because of &lt;strong>QUIC&lt;/strong>, a next-generation protocol designed for speed and security. Initial evaluations
of federated streaming architectures (&lt;a href="https://par.nsf.gov/servlets/purl/10380551" target="_blank" rel="noopener">INDIS'22
paper&lt;/a>) suggest potential benefits of QUIC, but comprehensive benchmarking is
needed. This project explores whether &lt;strong>QUIC-based proxies&lt;/strong> can outperform traditional &lt;strong>TCP+TLS&lt;/strong> proxies for scientific data streaming, potentially revolutionizing how researchers move
large datasets.&lt;/p>
&lt;h3 id="the-specific-tasks-of-the-project-include-1">&lt;strong>The Specific Tasks of the Project Include&lt;/strong>&lt;/h3>
&lt;ul>
&lt;li>Developing a &lt;strong>QUIC-based proxy&lt;/strong> optimized for scientific workflows.&lt;/li>
&lt;li>Running benchmarks to compare &lt;strong>QUIC vs. traditional TLS proxies&lt;/strong>.&lt;/li>
&lt;li>Investigating &lt;strong>hardware encryption offloading&lt;/strong> for QUIC and TLS.&lt;/li>
&lt;li>Designing &lt;strong>reproducible experiments&lt;/strong> using Chameleon and FABRIC testbeds.&lt;/li>
&lt;li>Documenting best practices for deploying &lt;strong>QUIC proxies in HPC environments&lt;/strong>.&lt;/li>
&lt;/ul>
&lt;h3 id="why-this-matters-for-your-career-2">&lt;strong>Why This Matters for Your Career&lt;/strong>&lt;/h3>
&lt;ul>
&lt;li>Gain experience in &lt;strong>cutting-edge networking protocols&lt;/strong> used in cloud computing (Google, Cloudflare, etc.).&lt;/li>
&lt;li>Learn about &lt;strong>hardware acceleration&lt;/strong> and its role in high-speed networking.&lt;/li>
&lt;/ul>
&lt;h3 id="scistream-auth-modern-authentication-and-user-interface-for-scientific-data-streaming">SciStream-Auth: Modern Authentication and User Interface for Scientific Data Streaming&lt;/h3>
&lt;p>&lt;strong>Project Idea Description:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: Authentication Systems, UI/UX Design, Security Integration, Scientific Computing&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: Python, Web Development (React/Vue), OAuth 2.0/SAML, Security Analysis&lt;/li>
&lt;li>&lt;strong>Difficulty&lt;/strong>: Medium&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong>: Large (350) hours&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/joaquin-chung/">Joaquin Chung&lt;/a>, &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/flavio-castro/">Flavio Castro&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Not a security expert? You can still contribute by designing an interactive front-end!&lt;/p>
&lt;p>In today&amp;rsquo;s scientific computing landscape, authentication and user experience often act as barriers to adoption rather than enabling seamless collaboration. While SciStream excels at
high-speed data transfer, its reliance on a single authentication provider and command-line interface limits its accessibility. This project aims to transform SciStream into a more
versatile platform by implementing a modular authentication system and developing an intuitive graphical interface.&lt;/p>
&lt;p>By expanding beyond Globus Auth to support multiple authentication frameworks, we can enable broader adoption across different scientific communities while maintaining robust security.
Coupled with a modern GUI that visualizes real-time streaming activity, this enhancement will make SciStream more accessible to researchers—allowing them to focus on their science rather
than wrestling with complex configurations.&lt;/p>
&lt;p>This project will design a user-friendly interface that makes secure scientific data streaming as intuitive as using a cloud storage service. You&amp;rsquo;ll also gain hands-on experience with
authentication methods used by industry leaders like Google and Facebook, while directly improving access to scientific data.&lt;/p>
&lt;h3 id="the-specific-tasks-of-the-project-include-2">&lt;strong>The Specific Tasks of the Project Include&lt;/strong>&lt;/h3>
&lt;ul>
&lt;li>Design and implementation of a pluggable authentication system supporting multiple providers (OAuth 2.0, SAML, OpenID Connect, certificate-based auth)&lt;/li>
&lt;li>Development of a modern, responsive GUI using web technologies that provides real-time visualization of system status&lt;/li>
&lt;li>Creation of comprehensive security testing protocols to validate the authentication implementations&lt;/li>
&lt;li>Implementation of session management and secure credential handling within the GUI&lt;/li>
&lt;li>Design of an intuitive interface for managing streaming configurations and monitoring data flows&lt;/li>
&lt;li>Creation of documentation and examples to help facilities integrate their preferred authentication mechanisms&lt;/li>
&lt;/ul></description></item><item><title>Kolmogorov-Arnold-based Transformer for LLMs: Implementation, Evaluation and Benchmarking</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/unl/kallm/</link><pubDate>Sun, 09 Feb 2025 10:15:56 -0700</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/unl/kallm/</guid><description>&lt;h3 id="project-objectives">Project Objectives&lt;/h3>
&lt;!--- KALLM introduction --->
&lt;!--- importance --->
&lt;p>&lt;a href="https://github.com/saisumanv/KALLM" target="_blank" rel="noopener">KALLM&lt;/a> project proposes a new Kolmogorov-Arnold Network (KAN)-based Transformer implementation of an open-source LLM called SmolLM2. Transformers have found increasing success in many open-source LLMs across language reasoning tasks like text generation, summarization and some tasks imitating advanced critical thinking. However, Kolmogorov-Arnold Networks (KANs) are an attractive alternative to the Multi-Layer Perceptrons (MLPs) which are used in these Transformer architectures by default. KAN-based Transformers (KATs) offer several advantages over MLPs. (i) They follow the universal approximation property and hence can theoretically approximate any function i.e. they can learn from any complex input patterns. (ii) They are more interpretable as they decompose the entire input into multiple manageable components with each layer processing one component. This is unlike MLPs, where each layer processes the input sequences holistically. (iii) KANs can lead to faster convergence on certain reasoning tasks due to their ability to break down the input sequences into simple univariate functions.&lt;/p>
&lt;p>However, currently there exist little to no open-source implementations of KAN-based Transformers in open-source LLMs. Until recently, an efficient implementation of KAN was not available; the same can be said for KAN-based Transformer implementations. With the recent efficient implementations of open-source KAN-based Transformers (KATs), integrating them into open-source LLM engines becomes a possibility. This project will implement KAT as the core architecture of the Transformer in SmolLM2, an open-source LLM and perform evaluation and benchmarking against language reasoning tasks.&lt;/p>
&lt;p align="center">
&lt;img width="760" height="500" src="https://github.com/user-attachments/assets/aa4e2fa1-1a33-4511-a76c-2e95e24feee1">
&lt;/p>
&lt;h3 id="project-methodology-and-milestones">Project Methodology and Milestones&lt;/h3>
&lt;p>The project methodology is a mix of implementation and evaluation. The mentors are well-experienced in working with large codebases and will be available to guide through the technical and non-technical portions of the project. The step-by-step project methodology is outlined as follows.&lt;/p>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>Installation of SmolLM2 from the official Git Repo:&lt;/strong> The open-source implementation of SmolLM2 engine (hereon referred to as smollm plainly) is available on &lt;a href="https://github.com/huggingface/smollm/tree/main/tools/smol_tools" target="_blank" rel="noopener">GitHub&lt;/a>. The project primarily focuses on language reasoning and hence we limit ourselves to the SmolLM2 implementation and forego other forks of SmolLM such as the SmolVLM family.&lt;/p>
&lt;ul>
&lt;li>The project needs to be sanity checked by installing the engine on local computers.&lt;/li>
&lt;li>Following that, the students are to familiarize themselves with basic workflow such as running a sample code using the pretrained model. The instructions for installing SmolLM are located under the “tools” at smollm/tools/smol-tools subfolder.&lt;/li>
&lt;li>Next step is to train the SmolLM using the prepackaged Transformer model called “HF://mlc-ai/SmolLM2-1.7B-Instruct-q0f16-MLC&amp;quot;. The instructions are provided &lt;a href="https://github.com/huggingface/smollm/tree/main/tools/smol_tools" target="_blank" rel="noopener">here&lt;/a>.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Implementation—KAT in SmolLM:&lt;/strong> The smollm pretrained model is at smollm/tools/smollm_local_inference/mlc.py. The pretrained model is called &amp;ldquo;HF://mlc-ai/SmolLM2-1.7B-Instruct-q0f16-MLC&amp;rdquo;. This is an MLP-based Transformer. However, we will train the smollm with transformers ourselves with the same model as well as with KAT.&lt;/p>
&lt;ul>
&lt;li>A KAT implementation is available on GitHub at &lt;a href="https://github.com/Adamdad/kat" target="_blank" rel="noopener">ICLR2025&lt;/a>. To implement KAT in smollm, we will replace the default Transformer (HF://mlc-ai/SmolLM2-1.7B-Instruct-q0f16-MLC) with the open-source KAT mentioned above.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Training SmolLM with default Transformer and with KAT:&lt;/strong> This step will require compute resources and requires deployment of the implementation on Chameleon Cloud and/or National Research Platform (NRP). The mentors have access to these two testbeds and will provide the students access to those resources.&lt;/p>
&lt;ul>
&lt;li>The first task of this step is to port to the implementation to Chameleon Cloud before the model can be trained. This task may require around a week’s worth of turnaround time and can be performed in parallel with steps 1 &amp;amp; 2 if needed.&lt;/li>
&lt;li>&lt;strong>Training:&lt;/strong> The FULL dataset for training smollm is called smolltalk located here: &lt;a href="https://huggingface.co/datasets/HuggingFaceTB/smoltalk" target="_blank" rel="noopener">HuggingFaceTB/smoltalk&lt;/a>. The training code and instructions are at &lt;a href="https://github.com/huggingface/alignment-handbook/tree/main/recipes/smollm2" target="_blank" rel="noopener">huggingface/alignment-handbook&lt;/a>. Although the baseline uses SmolLM2-1.7.B-Instruct (pretrained model), we will instead train smollm for SmolLM2-135M-Instruct and SmolLM2-360M-Instruct as noted at the bottom of the page at &lt;a href="https://huggingface.co/datasets/HuggingFaceTB/smoltalk" target="_blank" rel="noopener">HuggingFaceTB/smoltalk&lt;/a>· Datasets at Hugging Face. According to this, for SmolLM2-135M-Instruct and SmolLM2-360M-Instruct we will ONLY use the &lt;a href="https://huggingface.co/datasets/HuggingFaceTB/smol-smoltalk" target="_blank" rel="noopener">smol-smolltalk dataset&lt;/a>.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Benchmarking:&lt;/strong> Finally, the benchmarks used throughout this project to evaluate our implementations will be the same as those for the release (pretrained) versions SmolLM2-135M-Instruct and SmolLM2-360M-Instruct. The benchmarks for language reasoning will be &lt;a href="https://huggingface.co/spaces/open-llm-leaderboard/open_llm_leaderboard#/" target="_blank" rel="noopener">chosen&lt;/a>.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;h3 id="project-timeline">Project Timeline&lt;/h3>
&lt;p>The following project timeline is anticipated. Some tasks may take longer or shorter than anticipated and hence the timeline is not 100% set in stone. However, it serves as a baseline based on the mentor’s prior experience on working with similar research projects. Each cell in the timeline chart is one week.
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img src="https://github.com/user-attachments/assets/5a91f8fe-fb4c-4844-bff2-75c933e6f73a" alt="image" loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;h3 id="project-testbeds">Project Testbeds&lt;/h3>
&lt;p>Sai Lamba Karanam has adminstrator-level access to the &lt;a href="https://nationalresearchplatform.org/" target="_blank" rel="noopener">National Research Platform (NRP)&lt;/a> and will provide access to cloud resources (compute) to the students working on the project. Both mentors will also have access to &lt;a href="https://www.chameleoncloud.org/" target="_blank" rel="noopener">Chameleon Cloud platform&lt;/a> and will grant access to compute resources for training, evaluation and benchmarking purposes.&lt;/p>
&lt;h3 id="project-deliverables">Project Deliverables&lt;/h3>
&lt;p>KALLM will be hosted on github at this &lt;a href="https://github/saisumanv/KALLM" target="_blank" rel="noopener">repo&lt;/a>. The mentors have extensive experience working with Machine Learning (ML) and Artifical Intelligence (AI) workflows in academic and industry settings. We seek to choose mentees that are willing to learn implementation of AI models and working with semi-large code bases. Mentees will have to become comfortable working with remote cloud testbeds (Chameleon and/or NRP) during the latter-half of the project. Some milestines described in the Project Methodolody can be done in parallel.&lt;/p>
&lt;p>KALLM is part of larger collaborative effort between the mentors and involves milestones and outcomes that fall outside the scope of this project, but are related. The mentors plan to publish the large project outcomes aat ML-based venue(s) towards the end of Fall 2025. The mentees will be added as coauthors.&lt;/p>
&lt;h3 id="kallm">KALLM&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: Towards High Performance NCCL-enabled 2D partitioned PyLops-MPI library&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: Python proficiency, scikit-learn, Experience with Linux, Introductory Experience with Cloud Computing Platforms&lt;/li>
&lt;li>&lt;strong>Difficulty&lt;/strong>: Easy-Medium&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong>: Medium (175 hours)&lt;/li>
&lt;li>&lt;strong>Mentor&lt;/strong>: &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/sai-suman-lamba-karanam/">Sai Suman Lamba Karanam&lt;/a>, &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/zahmeeth-sakkaff/">Zahmeeth Sakkaff&lt;/a>&lt;/li>
&lt;/ul></description></item><item><title>Smart Batching for Large Language Models</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/ucr/smartbatch/</link><pubDate>Sun, 09 Feb 2025 10:15:56 -0700</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/ucr/smartbatch/</guid><description>&lt;p>Sequence tokenization is a crucial step during Large Language Model training, fine-tuning, and inference. User prompts and training data are tokenized and zero-padded before being fed to the model in batches. This process allows models to interpret human language by breaking down complex sentences into simple token units that are numerically represented in a token set. However, the process of sequence padding for maintaining batch dimensions can introduce unnecessary overhead if batching is not properly done.&lt;/p>
&lt;p>In this project, we introduce Smart Batching, where we dynamically batch sequences in a fine-tuning dataset by their respective lengths. With this method, we aim to minimize the amount of zero padding required during sequence batching, which can result in improved and efficient fine-tuning and inference speeds. We also analyze this method with other commonly used batching practices (Longest Sequence, Random Shuffling) on valuable metrics such as runtime and model accuracy.&lt;/p>
&lt;h3 id="project-title">Project Title&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: &lt;code>Large Language Models&lt;/code> &lt;code>Fine-Tuning&lt;/code> &lt;code>AI&lt;/code> &lt;code>Transformers&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: Python, Pytorch, Large Language Models&lt;/li>
&lt;li>&lt;strong>Difficulty&lt;/strong>: Moderate&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong>: Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentor&lt;/strong>: [Daniel Wong]&lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/daniel-wong/">Daniel Wong&lt;/a>, [Luanzheng &amp;ldquo;Lenny&amp;rdquo; Guo]&lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/luanzheng-lenny-guo/">Luanzheng &amp;#34;Lenny&amp;#34; Guo&lt;/a>&lt;/li>
&lt;/ul>
&lt;h3 id="project-tasks-and-milestones">Project Tasks and Milestones&lt;/h3>
&lt;ul>
&lt;li>Implement an open source smart batching framework based on HuggingFace to allow for dynamically grouping sequences of similar token lengths into batches&lt;/li>
&lt;li>Analyze runtime, padding, and model accuracy with smart batching and other commonly used batching practices&lt;/li>
&lt;li>Apply smart batching with distributed fine-tuning and observe large language model outputs&lt;/li>
&lt;/ul></description></item><item><title>Towards High Performance NCCL-enabled 2D partitioned PyLops-MPI library</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/lbl/pylops-mpi/</link><pubDate>Sun, 09 Feb 2025 10:15:56 -0700</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/lbl/pylops-mpi/</guid><description>&lt;h3 id="project-description">Project Description&lt;/h3>
&lt;!--- PyLops and PyLops-MPI introduction --->
&lt;!--- importance --->
&lt;p>&lt;a href="https://github.com/PyLops/pyLops" target="_blank" rel="noopener">PyLops&lt;/a> ecosystem designed to enable large-scale, distributed-memory computations for matrix-free inverse problems. PyLops has achieved more than 400 stars till now. &lt;a href="https://github.com/PyLops/pyLops-mpi" target="_blank" rel="noopener">PyLops-MPI&lt;/a> is an extension of the PyLops. It can be widely used in scientific computation problems. Developed as part of the &lt;a href="https://summerofcode.withgoogle.com/archive/2023/projects/eNJTJO25" target="_blank" rel="noopener">2023 Google Summer of Code&lt;/a>, PyLops-MPI builds on the core PyLops framework by integrating MPI-based parallelism through the mpi4py library. This allows users to efficiently scale PyLops-based computations beyond a single node, leveraging high-performance computing (HPC) clusters for tackling increasingly large problem sizes.&lt;/p>
&lt;p>By extending PyLops&amp;rsquo; modular and user-friendly interface to distributed environments, PyLops-MPI provides researchers and engineers with a powerful tool for developing scalable scientific applications across disciplines, from geophysics to machine learning. As part of the broader PyLops ecosystem, it represents a significant step toward high-performance, parallel inverse problem solving, catering to both academia and industry.&lt;/p>
&lt;p>PyLops-MPI is aimed to provide an efficient and user-friendly distibuted inverse problem solution. The software are designed to handle all three distinct use-cases in the distributed inverse problem: (1) Both model and data are fully distributed across nodes. (2) Data are distributed across nodes but model is available at all nodes. (3) Both model and data are available in all nodes (or just in the master). There are multiple use-cases for PyLops-MPI, e.g. &lt;a href="https://pylops.github.io/pylops-mpi/tutorials/lsm.html#sphx-glr-tutorials-lsm-py" target="_blank" rel="noopener">Least-squares Migration&lt;/a>, &lt;a href="https://pylops.github.io/pylops-mpi/tutorials/mdd.html#sphx-glr-tutorials-mdd-py" target="_blank" rel="noopener">Multi-Dimensional Deconvolution&lt;/a> and &lt;a href="https://pylops.github.io/pylops-mpi/tutorials/poststack.html#sphx-glr-tutorials-poststack-py" target="_blank" rel="noopener">Post Stack Inversion - 3D&lt;/a>. We&amp;rsquo;ve already provided a solution based on mpi4py. With the development of PyLops-MPI, we plan to upgrade the communication infrastructure of PyLops-MPI to better support GPU-based cluster and reduce the overall datavement. This will further boost the performance of PyLops-MPI.&lt;/p>
&lt;p>This project is designed based on the roadmap of PyLops-MPI library. We plan to provide three major functionalities for the PyLops-MPI. Firstly, in the PyLops-MPI library, we support the NVIDIA GPU where we operates data on GPU. We are relying on &lt;a href="https://mpi4py.readthedocs.io/en/stable/tutorial.html#gpu-aware-mpi-python-gpu-arrays" target="_blank" rel="noopener">CUDA-Aware MPI implementaiton&lt;/a> in mpi4py. It requires a CUDA-Aware MPI software stacks which is strict to the system software. Alternatively, we can use NCCL instead of mpi4py when we call GPU routines. NCCL also has better support for NVLink etc. Secondly, the parallelism of PyLops-MPI is achieved through spliting the data and models to different MPI processors. It might not be scalable when we have multiply right hand side inverse problems. We have a &lt;a href="https://github.com/PyLops/pylops-mpi/issues/113" target="_blank" rel="noopener">2D partitioned implementation&lt;/a> while we don&amp;rsquo;t know exactly the performance of the implementation. Thus, we propose to benchmark the scalability of the new 2D partitioned implementation. We are aware that other distibuted matrix-matrix multiplication algorithms such as 2D SUMMA algorithm can be incoporated into the PyLops-MPI library. We would also like to implement the 2D SUMMA algorithm if time permits. Finally, we would like to benchmark MPI one-sided API in PyLops-MPI library since asynchronous execution features of one-sided API will improve the scalability of the algorithm.&lt;/p>
&lt;h3 id="project-objectives">Project Objectives&lt;/h3>
&lt;!--- Our goal 2D parallisem, NCCL, one-sided MPI --->
&lt;p>Aligned with the vision of the 2025 Open Source Research Experience (OSRE), the project aims to benchmark and extend the capability of the PyLops-MPI library in the distributed environment. Below is an outline of the algorithms to be developed in this project:&lt;/p>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>Goal 1: Enabling NCCL API in PyLops-MPI Library&lt;/strong>: Understanding the design of PyLops-MPI. Using NCCL API for collective communication in PyLops-MPI when data is on GPU. Benchmarking the performance of NCCL compared with mpi4py in different scenarios.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Goal 2: Benchmarking 2D Parallelism in PyLops-MPI Library&lt;/strong>: Understanding the design of PyLops-MPI. Understanding the design of 2D partition design in current PyLops-MPI library. Benchmarking the performance of 2D partition design in PyLops-MPI compared with original 1D partition design. If possible, implement the 2D SUMMA algorithm.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Goal 3: Enabling MPI One-sided API in PyLops-MPI Library&lt;/strong>: Understanding the design of PyLops-MPI. Uderstanding the message roofline model and MPI one-sided API. Implementing the one-sided communication strategies in the PyLops-MPI library.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;h3 id="project-benchmark-suites">Project Benchmark Suites&lt;/h3>
&lt;p>We plan to use at least three use cases in the &lt;a href="https://pylops.github.io/pylops-mpi/tutorials/" target="_blank" rel="noopener">tutorial sections&lt;/a> in PyLops-MPI. We will measure the communication volume and time to solution of these use-cases.&lt;/p>
&lt;h3 id="project-benchmark-testbeds">Project Benchmark Testbeds&lt;/h3>
&lt;p>Yuxi Hong is granted access to the world-leading supercomputers such as Delta, Delta-AI through an &lt;a href="https://www.xras.org/public/requests/193551-ACCESS-CIS250038" target="_blank" rel="noopener">ACCESS funded grant&lt;/a>. &lt;a href="https://docs.ncsa.illinois.edu/systems/delta/en/latest/" target="_blank" rel="noopener">Delta&lt;/a> is a dedicated, ACCESS-allocated resource designed by HPE and NCSA, delivering a highly capable GPU-focused compute environment for GPU and CPU workloads. &lt;a href="https://docs.ncsa.illinois.edu/systems/deltaai/en/latest/" target="_blank" rel="noopener">DeltaAI&lt;/a> is a companion system to Delta. Powered by the NVIDIA GH200 Grace Hopper Superchip, DeltaAI provides powerful compute capabilities for simulation and data science. The team also has access to &lt;a href="https://docs.nersc.gov/systems/perlmutter/architecture/" target="_blank" rel="noopener">Perlmutter&lt;/a> supercomputer based in LBNL.&lt;/p>
&lt;h3 id="project-deliverables">Project Deliverables&lt;/h3>
&lt;p>The PyLops-MPI is hosted in github at &lt;a href="https://github.com/PyLops/pyLops-mpi" target="_blank" rel="noopener">Repo&lt;/a>. &lt;a href="https://joss.theoj.org/papers/10.21105/joss.07512" target="_blank" rel="noopener">The paper&lt;/a> mainly describes the design of the PyLops-MPI. Our mentors are the main developers and deisgner of the PyLops-MPI. Our mentors are also experts in HPC and MPI libraries. We will select the proper the mentees for the projects and provide the benchmark results and new functionalities of PyLops-MPI by the end of the projects.
We plan to have two or three mentees for the projects since each goal is a milestone for PyLops-MPI. The three goals can be achieved seperately, they are orthogonal to each other and can be exectuted in parallel.&lt;/p>
&lt;h3 id="pylops-mpi">PyLops-MPI&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: Towards High Performance NCCL-enabled 2D partitioned PyLops-MPI library&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: Proficient in Python, Experience with MPI, Experience with GPU&lt;/li>
&lt;li>&lt;strong>Difficulty&lt;/strong>: Medium&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong>: Medium (175 hours)&lt;/li>
&lt;li>&lt;strong>Mentor&lt;/strong>: &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/yuxi-hong/">Yuxi Hong&lt;/a>, &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/matteo-ravasi/">Matteo Ravasi&lt;/a>, &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/nan-ding/">Nan Ding&lt;/a>&lt;/li>
&lt;/ul></description></item><item><title>GeFARe: Discovering Reproducible Failure Scenarios and Developing Failure-Aware Scheduling for Genomic Workflows</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/uga/gefare/</link><pubDate>Sun, 09 Feb 2025 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/uga/gefare/</guid><description>&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: genomic processing (e.g., DNA and RNA alignment), workflow scheduling, resource/cluster management, container orchestration&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: Linux, cloud computing (e.g., OpenStack), cluster manager (e.g., Kubernetes), systems automation (e.g., Bash/Python/Puppet), genomic workflows and applications (e.g., BWA, FastQC, Picard, GATK, STAR)&lt;/li>
&lt;li>&lt;strong>Difficulty&lt;/strong>: Hard&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong>: Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentor(s):&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/in-kee-kim/">In Kee Kim&lt;/a>&lt;/li>
&lt;/ul>
&lt;h3 id="project-idea-description">&lt;strong>Project Idea description&lt;/strong>&lt;/h3>
&lt;p>Large-scale genomic workflow executions require large-scale computing infrastructure, as well as high utilization of that infrastructure, to maximize throughput. Systems researchers have developed various techniques to achieve this goal, including scheduling, resource harvesting, tail mitigation, and failure recovery. However, many of these large-scale efforts have been carried out by separate groups/institutions that operate such large-scale infrastructure (e.g., major tech companies and national research labs). Reproducing and building upon these works at a similar scale in an academic environment is challenging – even labs with strong ties to these institutions often have to rely on trace-based research, which does not fully capture the complexities of real-world deployments.&lt;/p>
&lt;p>We observe two fundamental reasons for this difficulty: 1) a lack of computational infrastructure at a comparable scale and 2) a lack of representative workloads and software stacks. Although the academic community has sought to broaden access to large-scale infrastructure through testbeds like ChameleonCloud and CloudLab, the representative workloads and software stacks to reproduce aforementioned works remain limited.&lt;/p>
&lt;p>We aim to address this challenge by providing a robust, easy-to-use, and open-source environment for large-scale genomics workflow scheduling. Specifically, this environment will include:
a) a suite of tools to set up infrastructure on academic cloud testbeds,
b) a scheduling research platform for genomic workflows, and
c) software stacks to reproduce large-scale failure scenarios.&lt;/p>
&lt;p>We limit the scope of this project to only one or two major failure scenarios. For example, out-of-memory (OOM) failures occur when genomics applications run with insufficient available memory. However, we aim to make the software stack extendable for other scenarios whenever possible.&lt;/p>
&lt;p>Throughout this project, students will learn to use cloud testbeds (e.g., ChameleonCloud) for workflow scheduling research. They will gain hands-on experience in open-source cluster management and container orchestration tools (e.g., Kubernetes) and will also learn about various aspects of high-performance computing when genomic workflows.&lt;/p>
&lt;p>Finally, we will open-source all the code, software stacks, and datasets created during this project. Using these artifacts, we will also ensure the reproducibility of failure scenarios.&lt;/p>
&lt;h3 id="project-deliverable">&lt;strong>Project Deliverable&lt;/strong>&lt;/h3>
&lt;ul>
&lt;li>Acquire a basic understanding of genomic data processing (will mentor guidance)&lt;/li>
&lt;li>Build tools to set up a multi-node cluster on ChameleonCloud&lt;/li>
&lt;li>Create automation code/tools to set up genomics workflows’ input and containerized applications&lt;/li>
&lt;li>Discovering failure scenarios for genomics workflow execution (will mentor guidance)&lt;/li>
&lt;li>Develop a Kubernetes-based platform to implement scheduling policies (Students may use or build upon existing open-source works)&lt;/li>
&lt;li>Document the steps needed to reproduce the proposed failure scenarios&lt;/li>
&lt;/ul></description></item><item><title>StatWrap</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/northwestern/statwrap/</link><pubDate>Sun, 09 Feb 2025 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/northwestern/statwrap/</guid><description>&lt;p>&lt;a href="https://sites.northwestern.edu/statwrap/" target="_blank" rel="noopener">StatWrap&lt;/a> is a free and open-source assistive, non-invasive discovery and inventory tool to document research projects. It inventories project assets (e.g., code files, data files, manuscripts, documentation) and organizes information without additional input from the user. It also provides structure for users to add searchable and filterable notes connected to files to help communicate metadata about intent and analysis steps.&lt;/p>
&lt;p>At its core, StatWrap helps investigators identify and track changes in a research project as it evolves - which may affect reproducibility. For example: (1) people on the project can change over time, so processes may not be consistently executed due to transitions in employment; (2) data changes over time, due to accruing additional cases, adding new variables, or correcting mistakes in existing data; (3) software (e.g. used for data preparation and statistical analysis) evolves as it is edited, improved, and optimized; and (4) software can break or produce different results due to changes &amp;lsquo;under the hood&amp;rsquo; such as updates to statistical packages, compilers, or interpreters. StatWrap passively and actively documents these changes to support reproducibility.&lt;/p>
&lt;p>Additional information:&lt;/p>
&lt;ul>
&lt;li>&lt;a href="https://sites.northwestern.edu/statwrap/" target="_blank" rel="noopener">StatWrap home&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://github.com/stattag/statwrap" target="_blank" rel="noopener">StatWrap code (GitHub)&lt;/a>&lt;/li>
&lt;/ul>
&lt;h3 id="project-search">Project Search&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: &lt;code>search&lt;/code>, &lt;code>user interface&lt;/code>, &lt;code>indexing&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: JavaScript, React&lt;/li>
&lt;li>&lt;strong>Difficulty&lt;/strong>: Medium&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong>: Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentor&lt;/strong>: &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/luke-rasmussen/">Luke Rasmussen&lt;/a>, &lt;a href="mailto:ewhitley@northwestern.edu">Eric Whitley&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>The goal of this project is to leverage the information entered by users and passively discovered by StatWrap to facilitate cross-project searching. This functionality will allow investigators to search across projects (current and past) to find relevant projects, assets, and notes. Given the potentially sensitive nature of data included in projects, the indexing of content for searching must be done locally.&lt;/p>
&lt;p>The specific tasks of the project include:&lt;/p>
&lt;ul>
&lt;li>Identify and evaluate open-source projects to index content for searching&lt;/li>
&lt;li>Add a new classification for projects of “Active” and “Past” in the user interface&lt;/li>
&lt;li>Implement the search capability within the user interface&lt;/li>
&lt;li>Develop unit tests and conduct system testing&lt;/li>
&lt;/ul></description></item><item><title>Disentangled Generation and Editing of Pathology Images</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/uci/pathology_image_disentanglement/</link><pubDate>Fri, 07 Feb 2025 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/uci/pathology_image_disentanglement/</guid><description>&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> computational pathology, image generation, disentangled representations, latent space manipulation, deep learning&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong>
&lt;ul>
&lt;li>&lt;strong>Programming Languages:&lt;/strong>
&lt;ul>
&lt;li>Proficient in Python, with experience in machine learning libraries such as PyTorch or TensorFlow.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Generative Models:&lt;/strong>
&lt;ul>
&lt;li>Familiarity with Variational Autoencoders (VAEs), Generative Adversarial Networks (GANs), and contrastive learning methods.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Data Analysis:&lt;/strong>
&lt;ul>
&lt;li>Image processing techniques, statistical analysis, and working with histopathology datasets.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Biomedical Knowledge (preferred):&lt;/strong>
&lt;ul>
&lt;li>Basic understanding of histology, cancer pathology, and biological image annotation.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Advanced&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Large (350 hours). The project involves substantial computational work, model development, and evaluation of generated pathology images.&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/xi-li/">Xi Li&lt;/a> (contact person), Mentor Name&lt;/li>
&lt;/ul>
&lt;h3 id="project-idea-description">&lt;strong>Project Idea Description&lt;/strong>&lt;/h3>
&lt;p>The project aims to advance the &lt;strong>generation and disentanglement of pathology images&lt;/strong>, focusing on precise control over key histological features. By leveraging generative models, we seek to create synthetic histological images where specific pathological characteristics can be independently controlled.&lt;/p>
&lt;h3 id="challenges-in-current-approaches">&lt;strong>Challenges in Current Approaches&lt;/strong>&lt;/h3>
&lt;p>Current methods in histopathology image generation often struggle with:&lt;/p>
&lt;ol>
&lt;li>&lt;strong>Feature Entanglement:&lt;/strong> Difficulty in isolating individual factors such as cancer presence, severity, or staining variations.&lt;/li>
&lt;li>&lt;strong>Lack of Control:&lt;/strong> Limited capability to manipulate specific pathological attributes without affecting unrelated features.&lt;/li>
&lt;li>&lt;strong>Consistency Issues:&lt;/strong> Generated images often fail to maintain realistic cellular distributions, affecting biological validity.&lt;/li>
&lt;/ol>
&lt;h3 id="project-motivation">&lt;strong>Project Motivation&lt;/strong>&lt;/h3>
&lt;p>This project proposes a &lt;strong>disentangled representation framework&lt;/strong> to address these limitations. By separating key features within the latent space, we aim to:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Control Histological Features:&lt;/strong> Adjust factors such as cancer presence, tumor grade, number of malignant cells, and staining methods.&lt;/li>
&lt;li>&lt;strong>Ensure Spatial Consistency:&lt;/strong> Maintain the natural distribution of cells during image reconstruction and editing.&lt;/li>
&lt;li>&lt;strong>Enable Latent Space Manipulation:&lt;/strong> Provide interpretable controls for editing and generating realistic histopathology images.&lt;/li>
&lt;/ul>
&lt;h3 id="project-objectives">&lt;strong>Project Objectives&lt;/strong>&lt;/h3>
&lt;ol>
&lt;li>&lt;strong>Disentangled Representation Learning:&lt;/strong>
&lt;ul>
&lt;li>Develop generative models (e.g., VAEs, GANs) to separate and control histological features.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Latent Space Manipulation:&lt;/strong>
&lt;ul>
&lt;li>Design mechanisms for intuitive editing of pathology images through latent space adjustments.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Spatial Consistency Validation:&lt;/strong>
&lt;ul>
&lt;li>Implement evaluation metrics to ensure that cell distribution remains biologically consistent during image generation.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ol>
&lt;h3 id="project-deliverables">&lt;strong>Project Deliverables&lt;/strong>&lt;/h3>
&lt;ol>
&lt;li>&lt;strong>Generative Model Framework:&lt;/strong>
&lt;ul>
&lt;li>An open-source Python implementation for pathology image generation and editing.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Disentangled Latent Space Tools:&lt;/strong>
&lt;ul>
&lt;li>Tools for visualizing and manipulating latent spaces to control specific pathological features.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Evaluation Metrics:&lt;/strong>
&lt;ul>
&lt;li>Comprehensive benchmarks assessing image quality, feature disentanglement, and biological realism.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Documentation and Tutorials:&lt;/strong>
&lt;ul>
&lt;li>Clear guidelines and code examples for the research community to adopt and build upon this work.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ol>
&lt;h3 id="impact">&lt;strong>Impact&lt;/strong>&lt;/h3>
&lt;p>By enabling precise control over generated histology images, this project will contribute to &lt;strong>data augmentation&lt;/strong>, &lt;strong>model interpretability&lt;/strong>, and &lt;strong>biological insight&lt;/strong> in computational pathology. The disentangled approach offers new opportunities for researchers to explore disease mechanisms, develop robust diagnostic models, and improve our understanding of cancer progression and tissue morphology.&lt;/p>
&lt;hr></description></item><item><title>Autograder</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/ucsc/autograder/</link><pubDate>Thu, 06 Feb 2025 13:00:00 -0800</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/ucsc/autograder/</guid><description>&lt;p>The &lt;a href="https://github.com/edulinq/autograder-server" target="_blank" rel="noopener">EduLinq Autograder&lt;/a> is an open source tool used by several courses at UCSC
to safely and quickly grade programming assignments.
Grading student code is something that may seem simple at first (you just need to run their code!),
but quickly becomes exceeding complex as you get more into the details.
Specifically, grading a student&amp;rsquo;s code securely while providing the &amp;ldquo;last mile&amp;rdquo; service of getting code from students
and sending results to instructors/TAs and the course&amp;rsquo;s LMS (e.g., Canvas) can be very difficult.
The Autograder provides all of this in a free and open source project.
The &lt;a href="https://linqs.org" target="_blank" rel="noopener">LINQS Lab&lt;/a> has made many contributions to the maintain and improve the Autograder.&lt;/p>
&lt;p>As an open source project, there are endless opportunities for development, improvements, and collaboration.
Here, we highlight some specific projects that will work well in the summer mentorship setting.&lt;/p>
&lt;p>All students interested in LINQS projects for OSRE/GSoC 2025 should fill out &lt;a href="https://forms.gle/RxGqnQiCDeHSX6tq6" target="_blank" rel="noopener">this form&lt;/a>.
Towards the end of the application window, we will contact those who we believe to be a good fit for a LINQS project.
The form will stop accepting responses once the application window closes.
Do not post on any of the project repositories about OSRE/GSoC
(e.g., comment on an issue that you want to tackle it as a part of OSRE/GSoC 2025).
Remember, these are active repositories that were not created for OSRE/GSoC.&lt;/p>
&lt;h3 id="llm-detection">LLM Detection&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> &lt;code>AI/ML&lt;/code> &lt;code>LLM&lt;/code> &lt;code>Research&lt;/code> &lt;code>Backend&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> software development, backend, systems, data munging, go, docker&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Challenging&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="mailto:linqs.osre25@gmail.com">Eriq Augustine&lt;/a>, &lt;a href="mailto:linqs.osre25@gmail.com">Fabrice Kurmann&lt;/a>, &lt;a href="mailto:linqs.osre25@gmail.com">Lise Getoor&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>As &lt;a href="https://en.wikipedia.org/wiki/Large_language_model" target="_blank" rel="noopener">Large Language Model (LLM)&lt;/a> tools like ChatGPT become more common and powerful,
instructors need tools to help determine if students are the actual authors of the code they submit.
More classical instances of plagiarism are often discovered by code similarity tools like &lt;a href="https://theory.stanford.edu/~aiken/moss/" target="_blank" rel="noopener">MOSS&lt;/a>.
However these tools are not sufficient for detecting code written not by a student,
but by an AI model like &lt;a href="https://en.wikipedia.org/wiki/ChatGPT" target="_blank" rel="noopener">ChatGPT&lt;/a> or &lt;a href="https://en.wikipedia.org/wiki/GitHub_Copilot" target="_blank" rel="noopener">GitHub Copilot&lt;/a>.&lt;/p>
&lt;p>The task for this project is to create a system that provides a score indicating the system&amp;rsquo;s confidence that a given piece of code was written by an AI tool and not a student.
This will supplement the existing code analysis tools in the Autograder.
There are many approaches to completing this task that will be considered.
A more software development approach can consist of levering exiting systems to create a production-ready system,
whereas a more research approach can consist of creating a novel approach complete with a paper and experiments.&lt;/p>
&lt;p>See Also:&lt;/p>
&lt;ul>
&lt;li>&lt;a href="https://github.com/edulinq/autograder-server" target="_blank" rel="noopener">Repository for Autograder Server&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://github.com/edulinq/autograder-server/issues/140" target="_blank" rel="noopener">GitHub Issue&lt;/a>&lt;/li>
&lt;/ul>
&lt;h3 id="code-analysis-gui">Code Analysis GUI&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> &lt;code>Frontend&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> software development, frontend, data munging, js, css, go&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Easy&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Medium or Large (175 or 350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="mailto:linqs.osre25@gmail.com">Eriq Augustine&lt;/a>, &lt;a href="mailto:linqs.osre25@gmail.com">Fabrice Kurmann&lt;/a>, &lt;a href="mailto:linqs.osre25@gmail.com">Lise Getoor&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>The Autograder has existing functionality to analyze the code in a student&amp;rsquo;s submission for malicious content.
Relevant to this project is that the Autograder can run a pairwise similarity analysis against all submitted code.
This is how most existing software plagiarism systems detect offending code.
The existing infrastructure provides detailed statistics on code similarity,
but does not currently have a visual way to display this data.&lt;/p>
&lt;p>The task for this project is to create a web GUI using the Autograder REST API
to display the results of a code analysis.
The size of this project depends on how many of the existing features are going to be supported by the web GUI.&lt;/p>
&lt;p>See Also:&lt;/p>
&lt;ul>
&lt;li>&lt;a href="https://github.com/edulinq/autograder-web" target="_blank" rel="noopener">Repository for Autograder Web GUI&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://github.com/edulinq/autograder-server/issues/142" target="_blank" rel="noopener">GitHub Issue&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://github.com/edulinq/autograder-server/blob/main/internal/model/analysis.go#L78" target="_blank" rel="noopener">Pairwise Code Analysis Type&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://github.com/edulinq/autograder-py/blob/main/tests/api/testdata/courses/assignments/submit/analysis/course_assignments_submissions_analysis_pairwise_wait.json" target="_blank" rel="noopener">Sample API Data&lt;/a>&lt;/li>
&lt;/ul>
&lt;h3 id="web-gui">Web GUI&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> &lt;code>Frontend&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> software development, frontend, js, css&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Easy&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Medium or Large (175 or 350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="mailto:linqs.osre25@gmail.com">Eriq Augustine&lt;/a>, &lt;a href="mailto:linqs.osre25@gmail.com">Fabrice Kurmann&lt;/a>, &lt;a href="mailto:linqs.osre25@gmail.com">Lise Getoor&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>The Autograder contains dozens of &lt;a href="https://github.com/edulinq/autograder-server/blob/main/resources/api.json" target="_blank" rel="noopener">API endpoints&lt;/a>,
most directly representing a piece of functionality exposed to the user.
All of these features are exposed in the &lt;a href="https://github.com/edulinq/autograder-py" target="_blank" rel="noopener">Autograder&amp;rsquo;s Python Interface&lt;/a>.
However, the Python interface is a purely command-line interface.
And although command-line interface are objectively (read: subjectively) the best,
a web GUI would be more accessible to a wider audience.
The autograder already has a web GUI,
but it does not cover all the features available in the Autograder.&lt;/p>
&lt;p>The task for this project is to augment the Autograder&amp;rsquo;s web GUI with more features.
Specifically, add support for more tools used to create and administer courses.&lt;/p>
&lt;p>See Also:&lt;/p>
&lt;ul>
&lt;li>&lt;a href="https://github.com/edulinq/autograder-web" target="_blank" rel="noopener">Repository for Autograder Web GUI&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://github.com/edulinq/autograder-server/issues/61" target="_blank" rel="noopener">GitHub Issue&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://github.com/edulinq/autograder-server/blob/main/resources/api.json" target="_blank" rel="noopener">Autograder API Endpoints&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://github.com/edulinq/autograder-py" target="_blank" rel="noopener">Autograder&amp;rsquo;s Python Interface&lt;/a>&lt;/li>
&lt;/ul></description></item><item><title>LMS Toolkit</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/ucsc/lms-toolkit/</link><pubDate>Thu, 06 Feb 2025 13:00:00 -0800</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/ucsc/lms-toolkit/</guid><description>&lt;p>The &lt;a href="https://github.com/edulinq/py-canvas" target="_blank" rel="noopener">EduLinq LMS Toolkit&lt;/a> (also called the &amp;ldquo;Canvas Tool&amp;rdquo; or &amp;ldquo;py-canvas&amp;rdquo;) is a suite of tools used by several courses at UCSC
to interact with Canvas from the command line or Python.
A &lt;a href="https://en.wikipedia.org/wiki/Learning_management_system" target="_blank" rel="noopener">Learning Management System&lt;/a> (LMS) is a system that institutions use to manage courses, assignments, students, and grades.
The most popular LMSs are
&lt;a href="https://en.wikipedia.org/wiki/Instructure#Canvas" target="_blank" rel="noopener">Canvas&lt;/a>,
&lt;a href="https://en.wikipedia.org/wiki/Blackboard_Learn" target="_blank" rel="noopener">Blackboard&lt;/a>,
&lt;a href="https://en.wikipedia.org/wiki/Moodle" target="_blank" rel="noopener">Moodle&lt;/a>,
and &lt;a href="https://en.wikipedia.org/wiki/D2L#Brightspace" target="_blank" rel="noopener">Brightspace&lt;/a>.
These tools can be very helpful, especially from an administrative standpoint, but can be hard to interact with.
They can be especially difficult when instructors and TAs want to do something that is not explicitly supported by their built-in GUIs
(e.g., when an instructor wants to use a special grading policy).
The LMS Toolkit project is an effort to create a single suite of command-line tools (along with a Python interface)
to connect to all the above mentioned LMSs in a simple and uniform way.
So, not only can instructors and TAs easily access the modify the data held in an LMS (like a student&amp;rsquo;s grades),
but they can also do it the same way on any LMS.
The &lt;a href="https://linqs.org" target="_blank" rel="noopener">LINQS Lab&lt;/a> has made many contributions to the maintain and improve the Quiz Composer.&lt;/p>
&lt;p>Currently, the LMS Toolkit only supports Canvas, but this suite of projects hopes to not only expand existing support,
but add support for more LMSs.&lt;/p>
&lt;p>All students interested in LINQS projects for OSRE/GSoC 2025 should fill out &lt;a href="https://forms.gle/RxGqnQiCDeHSX6tq6" target="_blank" rel="noopener">this form&lt;/a>.
Towards the end of the application window, we will contact those who we believe to be a good fit for a LINQS project.
The form will stop accepting responses once the application window closes.
Do not post on any of the project repositories about OSRE/GSoC
(e.g., comment on an issue that you want to tackle it as a part of OSRE/GSoC 2025).
Remember, these are active repositories that were not created for OSRE/GSoC.&lt;/p>
&lt;h3 id="advanced-canvas-support">Advanced Canvas Support&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> &lt;code>Backend&lt;/code> &lt;code>Teaching Tools&lt;/code> &lt;code>API&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> software development, backend, rest api, data munging, http request inspection, python&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Moderate&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Medium or Large (175 or 350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="mailto:linqs.osre25@gmail.com">Eriq Augustine&lt;/a>, &lt;a href="mailto:linqs.osre25@gmail.com">Batuhan Salih&lt;/a>, &lt;a href="mailto:linqs.osre25@gmail.com">Lise Getoor&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>The LMS Toolkit already has basic read-write support for core Canvas functionality (working with grades and assignments).
However, there are still many more features that can be supported such as
&lt;a href="https://github.com/edulinq/py-canvas/issues/17" target="_blank" rel="noopener">group management&lt;/a>,
&lt;a href="https://github.com/edulinq/py-canvas/issues/7" target="_blank" rel="noopener">quiz management&lt;/a>,
&lt;a href="https://github.com/edulinq/py-canvas/issues/10" target="_blank" rel="noopener">quiz statistics&lt;/a>,
and &lt;a href="https://github.com/edulinq/py-canvas/issues/19" target="_blank" rel="noopener">assignment statuses&lt;/a>.&lt;/p>
&lt;p>The task for this project is to implement chose of set of advanced Canvas features to support
(not limited to those features mentioned above),
design an LMS-agnostic way to support those features,
and implement those features.
The flexibility in the features chosen to implement account for the variable size of this project.&lt;/p>
&lt;p>See Also:&lt;/p>
&lt;ul>
&lt;li>&lt;a href="https://github.com/edulinq/py-canvas" target="_blank" rel="noopener">Repository for LMS Toolkit&lt;/a>&lt;/li>
&lt;li>GitHub Issues
&lt;ul>
&lt;li>&lt;a href="https://github.com/edulinq/py-canvas/issues/17" target="_blank" rel="noopener">Group Management&lt;/a>,&lt;/li>
&lt;li>&lt;a href="https://github.com/edulinq/py-canvas/issues/7" target="_blank" rel="noopener">Quiz Management&lt;/a>,&lt;/li>
&lt;li>&lt;a href="https://github.com/edulinq/py-canvas/issues/10" target="_blank" rel="noopener">Quiz Statistics&lt;/a>,&lt;/li>
&lt;li>&lt;a href="https://github.com/edulinq/py-canvas/issues/19" target="_blank" rel="noopener">Assignment Statuses&lt;/a>.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h3 id="new-lms-support-moodle">New LMS Support: Moodle&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> &lt;code>Backend&lt;/code> &lt;code>Teaching Tools&lt;/code> &lt;code>API&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> software development, backend, rest api, data munging, http request inspection, python&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Moderate&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="mailto:linqs.osre25@gmail.com">Eriq Augustine&lt;/a>, &lt;a href="mailto:linqs.osre25@gmail.com">Batuhan Salih&lt;/a>, &lt;a href="mailto:linqs.osre25@gmail.com">Lise Getoor&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>The goal of the LMS toolkit is to provide a single interface for all LMSs.
It is a lofty goal, however there is currently only support for &lt;a href="https://en.wikipedia.org/wiki/Instructure#Canvas" target="_blank" rel="noopener">Canvas&lt;/a>.
&lt;a href="https://en.wikipedia.org/wiki/Moodle" target="_blank" rel="noopener">Moodle&lt;/a> is one of the more popular LMSs.
Naturally, the LMS Toolkit wants to support Moodle as well.
Moodle is open source, so adding support in the LMS Toolkit should not be too challenging.&lt;/p>
&lt;p>The task for this project is to add basic support for the Moodle LMS.
It is not necessary to support all the same features that are supported for Canvas,
but at least the core features of score and assignment management should be implemented.&lt;/p>
&lt;p>See Also:&lt;/p>
&lt;ul>
&lt;li>&lt;a href="https://github.com/edulinq/py-canvas" target="_blank" rel="noopener">Repository for LMS Toolkit&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://en.wikipedia.org/wiki/Moodle" target="_blank" rel="noopener">Moodle Wiki Page&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://github.com/edulinq/py-canvas/issues/22" target="_blank" rel="noopener">GitHub Issue&lt;/a>&lt;/li>
&lt;/ul>
&lt;h3 id="new-lms-support-blackboard">New LMS Support: Blackboard&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> &lt;code>Backend&lt;/code> &lt;code>Teaching Tools&lt;/code> &lt;code>API&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> software development, backend, rest api, data munging, http request inspection, python&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Challenging&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="mailto:linqs.osre25@gmail.com">Eriq Augustine&lt;/a>, &lt;a href="mailto:linqs.osre25@gmail.com">Batuhan Salih&lt;/a>, &lt;a href="mailto:linqs.osre25@gmail.com">Lise Getoor&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>The goal of the LMS toolkit is to provide a single interface for all LMSs.
It is a lofty goal, however there is currently only support for &lt;a href="https://en.wikipedia.org/wiki/Instructure#Canvas" target="_blank" rel="noopener">Canvas&lt;/a>.
&lt;a href="https://en.wikipedia.org/wiki/Blackboard_Learn" target="_blank" rel="noopener">Blackboard&lt;/a> (also called &amp;ldquo;Blackboard Learn&amp;rdquo;) is one of the more popular LMSs.
Naturally, the LMS Toolkit wants to support Blackboard as well.
However, a challenge in supporting Blackboard is that it is not open source (unlike Canvas).
Therefore, support and testing on Blackboard may be very challenging.&lt;/p>
&lt;p>The task for this project is to add basic support for the Blackboard LMS.
It is not necessary to support all the same features that are supported for Canvas,
but at least the core features of score and assignment management should be implemented.
The closed nature of Blackboard makes this a challenging and uncertain project.&lt;/p>
&lt;p>See Also:&lt;/p>
&lt;ul>
&lt;li>&lt;a href="https://github.com/edulinq/py-canvas" target="_blank" rel="noopener">Repository for LMS Toolkit&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://en.wikipedia.org/wiki/Blackboard_Learn" target="_blank" rel="noopener">Blackboard Wiki Page&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://github.com/edulinq/py-canvas/issues/21" target="_blank" rel="noopener">GitHub Issue&lt;/a>&lt;/li>
&lt;/ul>
&lt;h3 id="new-lms-support-brightspace">New LMS Support: Brightspace&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> &lt;code>Backend&lt;/code> &lt;code>Teaching Tools&lt;/code> &lt;code>API&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> software development, backend, rest api, data munging, http request inspection, python&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Challenging&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="mailto:linqs.osre25@gmail.com">Eriq Augustine&lt;/a>, &lt;a href="mailto:linqs.osre25@gmail.com">Batuhan Salih&lt;/a>, &lt;a href="mailto:linqs.osre25@gmail.com">Lise Getoor&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>The goal of the LMS toolkit is to provide a single interface for all LMSs.
It is a lofty goal, however there is currently only support for &lt;a href="https://en.wikipedia.org/wiki/Instructure#Canvas" target="_blank" rel="noopener">Canvas&lt;/a>.
&lt;a href="https://en.wikipedia.org/wiki/D2L#Brightspace" target="_blank" rel="noopener">D2L Brightspace&lt;/a> is one of the more popular LMSs.
Naturally, the LMS Toolkit wants to support Brightspace as well.
However, a challenge in supporting Brightspace is that it is not open source (unlike Canvas).
Therefore, support and testing on Brightspace may be very challenging.&lt;/p>
&lt;p>The task for this project is to add basic support for the Brightspace LMS.
It is not necessary to support all the same features that are supported for Canvas,
but at least the core features of score and assignment management should be implemented.
The closed nature of Brightspace makes this a challenging and uncertain project.&lt;/p>
&lt;p>See Also:&lt;/p>
&lt;ul>
&lt;li>&lt;a href="https://github.com/edulinq/py-canvas" target="_blank" rel="noopener">Repository for LMS Toolkit&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://en.wikipedia.org/wiki/D2L#Brightspace" target="_blank" rel="noopener">Brightspace Wiki Page&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://github.com/edulinq/py-canvas/issues/23" target="_blank" rel="noopener">GitHub Issue&lt;/a>&lt;/li>
&lt;/ul>
&lt;h3 id="testing--ci-infrastructure">Testing / CI Infrastructure&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> &lt;code>Backend&lt;/code> &lt;code>Teaching Tools&lt;/code> &lt;code>Testing&lt;/code> &lt;code>CI&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> software development, backend, testing, ci, docker&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Challenging&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="mailto:linqs.osre25@gmail.com">Eriq Augustine&lt;/a>, &lt;a href="mailto:linqs.osre25@gmail.com">Batuhan Salih&lt;/a>, &lt;a href="mailto:linqs.osre25@gmail.com">Lise Getoor&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>The goal of the LMS toolkit is to provide a single interface for all LMSs.
This means that our system must communicate with several different (the LMSs),
each with their own systems, data patterns, versions, and quirks.
Testing will be essential to ensure that our tools keep working as the different LMSs evolve and update.
The LMS Toolkit currently tests with Canvas by
&lt;a href="https://github.com/edulinq/py-canvas/tree/main/tests/api/test_cases" target="_blank" rel="noopener">mocking API responses&lt;/a>.
However, this tactic does not scale well with multiple LMSs (and multiple versions of each system).
A more scalable approach would be to have test instances of the different LMSs that our testing infrastructure can interact with
both interactively and in &lt;a href="https://en.wikipedia.org/wiki/Continuous_integration" target="_blank" rel="noopener">continuous integration&lt;/a> (CI).&lt;/p>
&lt;p>The task for this project is to create testing infrastructure that
connects to test instances of different LMS systems (e.g., Canvas).
This task does not require that all the LMSs in this document are used,
but the testing infrastructure should be robust enough to support them all.
The open source LMSs (Canvas and Moodle) will likely be much easier to setup than the others,
and should be targeted first.
We should be able to run tests locally as well as in CI,
and will likely heavily use &lt;a href="https://en.wikipedia.org/wiki/Docker_%28software%29" target="_blank" rel="noopener">Docker&lt;/a> containers.&lt;/p>
&lt;p>See Also:&lt;/p>
&lt;ul>
&lt;li>&lt;a href="https://github.com/edulinq/py-canvas" target="_blank" rel="noopener">Repository for LMS Toolkit&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://github.com/edulinq/py-canvas/issues/24" target="_blank" rel="noopener">GitHub Issue&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://github.com/edulinq/py-canvas/tree/main/tests/api/test_cases" target="_blank" rel="noopener">Mocked API Responses&lt;/a>.&lt;/li>
&lt;/ul></description></item><item><title>Quiz Composer</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/ucsc/quiz-composer/</link><pubDate>Thu, 06 Feb 2025 13:00:00 -0800</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/ucsc/quiz-composer/</guid><description>&lt;p>The &lt;a href="https://github.com/edulinq/quizgen" target="_blank" rel="noopener">EduLinq Quiz Composer&lt;/a> (also called the &amp;ldquo;Quiz Generator&amp;rdquo;) is a tool used by several courses at UCSC
to create and maintain platform-agnostic quizzes (including exams and worksheets).
Knowledge assessments like quizzes, exams, and tests are a core part of the learning process for many courses.
However maintaining banks of questions, collaborating on new questions, and converting quizzes to new formats can use up a lot of time,
taking time away from actually working on improving course materials.
The Quiz Composer helps by providing a single text-based format that can be stored in a repository and &amp;ldquo;compiled&amp;rdquo; into many different formats including:
HTML, LaTeX, PDF, Canvas, GradeScope, and QTI.
The &lt;a href="https://linqs.org" target="_blank" rel="noopener">LINQS Lab&lt;/a> has made many contributions to the maintain and improve the Quiz Composer.&lt;/p>
&lt;p>As an open source project, there are endless opportunities for development, improvements, and collaboration.
Here, we highlight some specific projects that will work well in the summer mentorship setting.&lt;/p>
&lt;p>All students interested in LINQS projects for OSRE/GSoC 2025 should fill out &lt;a href="https://forms.gle/RxGqnQiCDeHSX6tq6" target="_blank" rel="noopener">this form&lt;/a>.
Towards the end of the application window, we will contact those who we believe to be a good fit for a LINQS project.
The form will stop accepting responses once the application window closes.
Do not post on any of the project repositories about OSRE/GSoC
(e.g., comment on an issue that you want to tackle it as a part of OSRE/GSoC 2025).
Remember, these are active repositories that were not created for OSRE/GSoC.&lt;/p>
&lt;h3 id="canvas-import">Canvas Import&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> &lt;code>Backend&lt;/code> &lt;code>Teaching Tools&lt;/code> &lt;code>API&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> software development, backend, rest api, data munging, http request inspection, python&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Moderate&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Medium (175 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="mailto:linqs.osre25@gmail.com">Eriq Augustine&lt;/a>, &lt;a href="mailto:linqs.osre25@gmail.com">Lucas Ellenberger&lt;/a>, &lt;a href="mailto:linqs.osre25@gmail.com">Lise Getoor&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>The Quiz Composer houses quizzes and quiz questions in a simple and unambiguous format based
on &lt;a href="https://en.wikipedia.org/wiki/JSON" target="_blank" rel="noopener">JSON&lt;/a> and &lt;a href="https://en.wikipedia.org/wiki/Markdown" target="_blank" rel="noopener">Markdown&lt;/a> (specifically, the &lt;a href="https://commonmark.org" target="_blank" rel="noopener">CommonMark specification&lt;/a>).
This allows the Quiz Composer to unambiguously create versions of the same quiz in many different formats.
However, creating a quiz in the Quiz Composer format can be a daunting task for those not familiar with JSON or Markdown.
Instead, it would be easier for people to import quizzes from another format into the Quiz Composer format,
and then edit it as they see fit.
Unfortunately not all other quiz formats, namely Canvas in this case, are unambiguous.&lt;/p>
&lt;p>The task for this project is to implement the functionality of importing quizzes from Canvas to the standard Quiz Composer format.
The unambiguous nature of Canvas quizzes makes this task non-trivial,
and adds an additional element of design decisions to this task.
It will be impossible to import quizzes 100% correctly,
but we want to be able to get close enough that most people can import their quizzes without issue.&lt;/p>
&lt;p>See Also:&lt;/p>
&lt;ul>
&lt;li>&lt;a href="https://github.com/edulinq/quizgen" target="_blank" rel="noopener">Repository for Quiz Composer&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://github.com/edulinq/quizgen/issues/27" target="_blank" rel="noopener">GitHub Issue&lt;/a>&lt;/li>
&lt;/ul>
&lt;h3 id="google-forms-export">Google Forms Export&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> &lt;code>Backend&lt;/code> &lt;code>Teaching Tools&lt;/code> &lt;code>API&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> software development, backend, rest api, data munging, python&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Moderate&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Medium (175 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="mailto:linqs.osre25@gmail.com">Eriq Augustine&lt;/a>, &lt;a href="mailto:linqs.osre25@gmail.com">Lucas Ellenberger&lt;/a>, &lt;a href="mailto:linqs.osre25@gmail.com">Lise Getoor&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>The Quiz Composer can export quizzes to many different formats,
each with a varying level of interactivity and feature support.
For example, quizzes can be exported to PDFs which will be printed and the students will just write down their answers to be checked in the future.
Quizzes can also be exported to interactive platforms like Canvas where students can enter answers that may be automatically checked with feedback immediately provided to the student.
On potential platform with functionality somewhere between the above two examples is &lt;a href="https://workspace.google.com/products/forms/" target="_blank" rel="noopener">Google Forms&lt;/a>.
&amp;ldquo;Forms&amp;rdquo; (an entity on Google Forms) can be something like a survey or (as of more recently) a quiz.&lt;/p>
&lt;p>The task for this project is to add support for exporting quizzes from the Quiz Composer to Google Forms.
There is a large overlap in the quiz features supported in Canvas (which the Quiz Composer already supports) and Google Forms,
so most settings should be fairly straightforward.
There may be some design work around deciding what features are specific to one quiz platform
and what features can be abstracted to work across several platforms.&lt;/p>
&lt;p>See Also:&lt;/p>
&lt;ul>
&lt;li>&lt;a href="https://github.com/edulinq/quizgen" target="_blank" rel="noopener">Repository for Quiz Composer&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://github.com/edulinq/quizgen/issues/19" target="_blank" rel="noopener">GitHub Issue&lt;/a>&lt;/li>
&lt;/ul>
&lt;h3 id="template-questions">Template Questions&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> &lt;code>Backend&lt;/code> &lt;code>Teaching Tools&lt;/code> &lt;code>API&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> software development, backend, data munging, python&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Moderate-Challenging&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="mailto:linqs.osre25@gmail.com">Eriq Augustine&lt;/a>, &lt;a href="mailto:linqs.osre25@gmail.com">Lucas Ellenberger&lt;/a>, &lt;a href="mailto:linqs.osre25@gmail.com">Lise Getoor&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Questions in the Quiz Composer are described using &lt;a href="https://en.wikipedia.org/wiki/JSON" target="_blank" rel="noopener">JSON&lt;/a> and &lt;a href="https://en.wikipedia.org/wiki/Markdown" target="_blank" rel="noopener">Markdown&lt;/a>
files which contain the question prompt, possible answers, and the correct answer.
(Of course there are many differ &lt;a href="https://github.com/edulinq/quizgen/blob/main/docs/question-types.md" target="_blank" rel="noopener">question types&lt;/a>,
each with different semantics and requirements.)
However, a limitation of this is that each question is always the same.
You can have multiple copies of a question with slightly different prompts, numbers, and answers;
but you are still limited to each question being static and unchanging.
It would be useful to have &amp;ldquo;template questions&amp;rdquo; that can dynamically create static questions from a template
and collection of replacement data.&lt;/p>
&lt;p>The task for this project is to add support for the &amp;ldquo;template questions&amp;rdquo; discussed above.
Much of the high-level design work for this issue has &lt;a href="https://github.com/edulinq/quizgen/issues/26" target="_blank" rel="noopener">already been completed&lt;/a>.
But there is still the implementation and low-level design decision left to do.&lt;/p>
&lt;p>See Also:&lt;/p>
&lt;ul>
&lt;li>&lt;a href="https://github.com/edulinq/quizgen" target="_blank" rel="noopener">Repository for Quiz Composer&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://github.com/edulinq/quizgen/issues/26" target="_blank" rel="noopener">GitHub Issue&lt;/a>&lt;/li>
&lt;/ul></description></item><item><title>LLMSeqRec: LLM Enhanced Contextual Sequential Recommender</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/sf/llmseqrec/</link><pubDate>Thu, 06 Feb 2025 10:15:56 -0700</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/sf/llmseqrec/</guid><description>&lt;h3 id="project-description">Project Description&lt;/h3>
&lt;p>Sequential Recommender Systems are widely used in scientific and business applications to analyze and predict patterns over time. In biology and ecology, they help track species behavior by suggesting related research on migration patterns and environmental changes. Medical applications include personalized treatment recommendations based on patient history and predicting disease progression. In physics and engineering, these systems optimize experimental setups by suggesting relevant past experiments or simulations. Environmental and climate science applications include forecasting climate trends and recommending datasets for monitoring deforestation or pollution. In business and e-commerce, sequential recommenders enhance user experiences by predicting consumer behavior, suggesting personalized products, and optimizing marketing strategies based on browsing and purchase history. By leveraging sequential dependencies, these recommender systems enhance research efficiency, knowledge discovery, and business decision-making across various domains. Traditional sequential recommendation systems rely on historical user interactions to predict future preferences, but they often struggle with capturing complex contextual dependencies and adapting to dynamic user behaviors. Existing models primarily use predefined embeddings and handcrafted features, limiting their ability to generalize across diverse recommendation scenarios. To address these challenges, we propose LLM Enhanced Contextual Sequential Recommender (LLMSeqRec), which leverages Large Language Models (LLMs) to enrich sequential recommendations with deep contextual understanding and adaptive reasoning.
By integrating LLM-generated embeddings and contextual representations, LLMSeqRec enhances user intent modeling, cold-start recommendations, and long-range dependencies in sequential data. Unlike traditional models that rely solely on structured interaction logs, LLMSeqRec dynamically interprets and augments sequences with semantic context, leading to more accurate and personalized recommendations. This fusion of LLM intelligence with sequential modeling enables a more scalable, adaptable, and explainable recommender system, bridging the gap between traditional sequence-based approaches and advanced AI-driven recommendations.&lt;/p>
&lt;h3 id="project-objectives">Project Objectives&lt;/h3>
&lt;p>Aligned with the vision of the 2025 Open Source Research Experience (OSRE), this project aims to develop an LLM-Enhanced Contextual Sequential Recommender (LLMSeqRec) to improve sequential recommendation accuracy across various scientific and business applications. Sequential recommender systems are widely used to analyze and predict patterns over time, assisting in fields such as biology, ecology, medicine, physics, engineering, environmental science, and e-commerce. However, traditional models often struggle with capturing complex contextual dependencies and adapting to dynamic user behaviors, as they primarily rely on vanilla sequential Id orders.
To address these limitations, this project will leverage Large Language Models (LLMs) to enhance context-aware sequential recommendations by dynamically integrating LLM-generated embeddings and contextual representations. The core challenge lies in designing LLMSeqRec, a unified and scalable model capable of enriching user intent modeling, mitigating cold-start issues, and capturing long-range dependencies within sequential data. Unlike conventional systems that rely solely on structured interaction logs, LLMSeqRec will interpret and augment sequences with semantic context, resulting in more accurate, adaptable, and explainable recommendations. Below is an outline of the methodologies and models that will be developed in this project:&lt;/p>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>Step 1: Data Preprocessing &amp;amp; Feature Creation&lt;/strong>:
Develop a data processing pipeline to parse user’s sequential interaction behaviors into sequential data points for LLM-based embeddings and contextual sequential transformer modeling; Extract user behavior sequences, items’ metadata, and temporal patterns to create context-aware sequential representations for training, validation and testing; The data source can be from Amazon open public data or Movie Lense data set. The data points creation can follow SASRec (in the reference 1).&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Step 2: Model Development&lt;/strong>:
Design and implement LLM-enhanced sequential recommendation models, integrating pretrained language models to augment user-item interactions with semantic context; Develop an adaptive mechanism to incorporate external contextual signals, such as product descriptions, reviews into the sequential recommendation process; The baseline model can be SASRec pytorch implementation.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Step 3: Evaluation&lt;/strong>: :
Benchmark LLMSeqRec against state-of-the-art sequential recommenders, evaluating on accuracy, NDCG and cold-start performance; Conduct ablation studies to analyze the impact of LLM-generated embeddings on recommendation quality; Optimize model inference speed and efficiency for real-time recommendation scenarios.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;h3 id="project-deliverables">Project Deliverables&lt;/h3>
&lt;p>This project will deliver three components, software, model training, validation and performance evaluation and demo. The software which implements the above LLMSeqRec model will be hosted on the github repo as open-access repositories. The evaluation results and demo will be published along the github repo .&lt;/p>
&lt;h3 id="llmseqrec">LLMSeqRec&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: LLM Enhanced Contextual Sequential Recommender&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: Proficiency in Python, Pytorch, Github, Self-attention, Transformer&lt;/li>
&lt;li>&lt;strong>Difficulty&lt;/strong>: Difficult&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong>: Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentor&lt;/strong>: &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/linsey-pang/">Linsey Pang&lt;/a>, &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/bin-dong/">Bin Dong&lt;/a>&lt;/li>
&lt;/ul>
&lt;h3 id="references">References:&lt;/h3>
&lt;ul>
&lt;li>Self-Attentive Sequential Recommendation (SASRec)&lt;/li>
&lt;li>BERT4Rec: Sequential Recommendation with Bidirectional Encoder Representations from Transformer&lt;/li>
&lt;li>Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks&lt;/li>
&lt;li>Amazon Dataset: &lt;a href="https://cseweb.ucsd.edu/~jmcauley/datasets.html#amazon_reviews" target="_blank" rel="noopener">https://cseweb.ucsd.edu/~jmcauley/datasets.html#amazon_reviews&lt;/a>&lt;/li>
&lt;li>Movie Lense Data: &lt;a href="https://grouplens.org/datasets/movielens/" target="_blank" rel="noopener">https://grouplens.org/datasets/movielens/&lt;/a>&lt;/li>
&lt;/ul></description></item><item><title>ReIDMM: Re-identifying Multiple Objects across Multiple Streams</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/lbl/reidmm/</link><pubDate>Thu, 06 Feb 2025 10:15:56 -0700</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/lbl/reidmm/</guid><description>&lt;h3 id="project-description">Project Description&lt;/h3>
&lt;p>Re-identifying multiple objects across multiple streams (ReIDMM) is essential in scientific research and various industries. It involves tracking and analyzing entities across different viewpoints or time frames. In astronomy, ReIDMM helps track celestial objects like asteroids and space debris using multiple observatories. In biology and ecology, it enables the identification of animals across different camera traps and aids in tracking microscopic organisms in laboratory studies. In physics and engineering, it is used for tracking particles in high-energy physics experiments, monitoring structural changes in materials, and identifying robots or drones in lab automation. Beyond scientific applications, ReIDMM plays a critical role in industries such as retail, where it tracks customer behavior across multiple stores and improves sales and prevents theft. In smart cities, it supports traffic monitoring by identifying vehicles across intersections for improved traffic flow management. In manufacturing, it enables supply chain tracking by locating packages across conveyor belts and warehouse cameras. In autonomous systems, ReIDMM enhances multi-camera sensor fusion and warehouse robotics by identifying pedestrians, obstacles, and objects across different camera views.&lt;/p>
&lt;h3 id="project-objectives">Project Objectives&lt;/h3>
&lt;p>Aligned with the vision of the 2025 Open Source Research Experience (OSRE), this project aims to develop an open-source algorithm for multiple-object re-identification across diverse open-source data streams. As highlighted earlier, this method is expected to have wide-ranging applications in both scientific research and industry. Utilizing an open-source dataset, our focus will be on re-identifying common objects such as vehicles and pedestrians. The primary challenge lies in designing a unified algorithm, ReIDMM, capable of performing robust multi-object re-identification across multiple streams. Users will be able to tag any object as a target in a video or image for tracking across streams. Below is an outline of the algorithms to be developed in this project:&lt;/p>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>Step 1: Target Object Identification&lt;/strong>: Randomly select a target object from an image or video using object detection models such as YOLOv7. These models detect objects by generating bounding boxes around them. Target objects could include vehicles, pedestrians, animals, or other recognizable entities. This step ensures an initial object of interest is chosen for re-identification.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Step 2: Feature Extraction and Embedding&lt;/strong>: Once the target object is identified, extract relevant features such as bounding box coordinates, timestamp, location metadata (if available), and visual characteristics. A multimodal embedding approach is used, where these features are transformed into a numerical representation (embedding vector) that captures the object&amp;rsquo;s unique identity. This allows for efficient comparison across different images or videos.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Step 3: Searching and Matching&lt;/strong>: To find the target object in other images or videos: (1) Extract embeddings of all objects detected in the other images/videos; (2) Compute similarity between the target object’s embedding and those of all detected objects using metrics like cosine similarity or Euclidean distance. (3) Rank objects by similarity, returning the most probable matches. The highest-ranked results are likely to be the same object observed from different angles, lighting conditions, or time frames.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;h3 id="project-deliverables">Project Deliverables&lt;/h3>
&lt;p>This project will deliver three things, software, evaluation results and demo. The software which implements the above ReIDMM algorithm will be hosted on the github repo as open-access repositories. The evaluation results and demo will be published along the github repo.&lt;/p>
&lt;h3 id="reidmm">ReIDMM&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: ReIDMM: Re-identifying Multiple Objects across Multiple Streams`&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: Proficient in Python, Experience with images processing, machine learning&lt;/li>
&lt;li>&lt;strong>Difficulty&lt;/strong>: Difficult&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong>: Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentor&lt;/strong>: &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/bin-dong/">Bin Dong&lt;/a>, &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/linsey-pang/">Linsey Pang&lt;/a>&lt;/li>
&lt;/ul>
&lt;h3 id="reference">Reference:&lt;/h3>
&lt;ul>
&lt;li>&lt;a href="https://medium.datadriveninvestor.com/multiple-object-tracking-using-person-re-identification-f9b7360cda1a" target="_blank" rel="noopener">multiple-object-tracking-using-person&lt;/a>&lt;/li>
&lt;li>Dataset: &lt;a href="https://paperswithcode.com/task/vehicle-re-identification" target="_blank" rel="noopener">Vehicle re-identification dataset and paper&lt;/a> and &lt;a href="https://paperswithcode.com/task/person-re-identification" target="_blank" rel="noopener">Person re-identification data and paper&lt;/a>&lt;/li>
&lt;/ul></description></item><item><title>Seam: Kubernetes-Aware Programmable Networking &amp; Cloud Provisioning</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/ucsd/seam/</link><pubDate>Wed, 05 Feb 2025 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/ucsd/seam/</guid><description>&lt;p>Seam is a project focused on building a Kubernetes-aware programmable networking and cloud provisioning system. It combines Python, Kubernetes, P4 programming, and SmartNICs to create a robust framework for managing cloud resources, optimizing networking, and provisioning virtual machines. Students will learn about cutting-edge technologies such as Kubernetes, Docker, P4 programming, SmartNICs, KubeVirt, Prometheus, Grafana, and Flask, while working on real-world applications in high-performance computing environments. This project will help students understand the intricacies of cloud resource management and programmable networking, providing them with valuable skills for future careers in software engineering, networking, and DevOps.&lt;/p>
&lt;p>The project involves creating a &lt;strong>Python library&lt;/strong> for provisioning Kubernetes resources, including virtual machines and networking, using tools such as &lt;strong>KubeVirt&lt;/strong> for VM provisioning and &lt;strong>ESnet SENSE&lt;/strong> for network configuration. The library will also integrate monitoring solutions with &lt;strong>Prometheus&lt;/strong> and &lt;strong>Grafana&lt;/strong> for real-time metrics collection and visualization. Students will develop &lt;strong>Flask-based dashboards&lt;/strong> for managing these resources, implement automated pipelines using &lt;strong>GitLab CI/CD&lt;/strong>, and explore full-stack web development, database management with &lt;strong>PostgreSQL&lt;/strong>, and API design.&lt;/p>
&lt;p>In addition, students will gain hands-on experience with &lt;strong>programmable networking&lt;/strong> using &lt;strong>P4&lt;/strong> and &lt;strong>SmartNICs&lt;/strong>, learning how to write P4 programs for dynamic routing, security, and network policy enforcement at the hardware level. The integration of &lt;strong>Kubernetes&lt;/strong>, &lt;strong>SmartNICs&lt;/strong>, and &lt;strong>P4 programming&lt;/strong> will allow for advanced optimizations and efficient management of high-performance cloud environments.&lt;/p>
&lt;p>Thus far, the framework has been developed to allow provisioning of resources within Kubernetes, integrating Prometheus and Grafana for monitoring, and providing an interface for users to manage cloud resources. We aim to extend this by incorporating advanced network policies and improving the web interface.&lt;/p>
&lt;h3 id="seam--kubernetes-resource-provisioning-and-management">Seam / Kubernetes Resource Provisioning and Management&lt;/h3>
&lt;p>The proposed work includes expanding the Python library to support comprehensive &lt;strong>Kubernetes resource provisioning&lt;/strong>, &lt;strong>network management&lt;/strong>, and &lt;strong>virtual machine provisioning&lt;/strong> using &lt;strong>KubeVirt&lt;/strong>. Students will enhance the current implementation to allow users to define &lt;strong>resource limits, CPU/GPU quotas, and network policies&lt;/strong>. They will also integrate with &lt;strong>ESnet SENSE&lt;/strong> to facilitate &lt;strong>L2 networking&lt;/strong>, and explore the use of &lt;strong>Prometheus&lt;/strong> and &lt;strong>Grafana&lt;/strong> for real-time performance monitoring and metrics collection.&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> Kubernetes, Python, Cloud Computing, Networking, Programmable Networking, Monitoring, CI/CD&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> Python, Kubernetes, P4 programming, KubeVirt, ESnet SENSE, Docker, GitLab CI/CD, Prometheus, Grafana, PostgreSQL, Flask&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Hard&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/mohammad-firas-sada/">Mohammad Firas Sada&lt;/a>, &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/thomas-a.-defanti/">Thomas A. DeFanti&lt;/a>, &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/jeffrey-weekley/">Jeffrey Weekley&lt;/a>, &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/derek-weitzel/">Derek Weitzel&lt;/a>, &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/dmitry-mishin/">Dmitry Mishin&lt;/a>&lt;/li>
&lt;/ul>
&lt;h3 id="seam--full-stack-web-development-and-dashboard">Seam / Full-Stack Web Development and Dashboard&lt;/h3>
&lt;p>The proposed work includes building a &lt;strong>Flask-based web dashboard&lt;/strong> using &lt;strong>Bootstrap&lt;/strong> for UI, integrating it with the &lt;strong>Python library&lt;/strong> to enable users to easily provision resources, monitor network performance, and track resource usage in real-time. The dashboard will support &lt;strong>role-based access control (RBAC)&lt;/strong>, allowing for secure multi-user management. Students will also integrate &lt;strong>PostgreSQL&lt;/strong> for managing and storing configurations, logs, and performance metrics.&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> Full-Stack Web Development, Flask, Bootstrap, PostgreSQL, Kubernetes, Monitoring, DevOps&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> Web Development, Flask, Bootstrap, PostgreSQL, API Development, Kubernetes&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Medium to Hard&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/mohammad-firas-sada/">Mohammad Firas Sada&lt;/a>, &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/thomas-a.-defanti/">Thomas A. DeFanti&lt;/a>, &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/jeffrey-weekley/">Jeffrey Weekley&lt;/a>, &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/derek-weitzel/">Derek Weitzel&lt;/a>, &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/dmitry-mishin/">Dmitry Mishin&lt;/a>&lt;/li>
&lt;/ul>
&lt;h3 id="seam--cicd-and-gitlab-integration">Seam / CI/CD and GitLab Integration&lt;/h3>
&lt;p>The proposed work includes setting up &lt;strong>GitLab CI/CD pipelines&lt;/strong> for automated &lt;strong>testing, deployment&lt;/strong>, and &lt;strong>maintenance&lt;/strong> of the Python library, Kubernetes resources, and web dashboard. Students will automate the deployment of &lt;strong>P4 programs&lt;/strong>, &lt;strong>Kubernetes deployments&lt;/strong>, and &lt;strong>networking configurations&lt;/strong>. They will also focus on &lt;strong>unit testing, integration testing&lt;/strong>, and the &lt;strong>automation of benchmarking experiments&lt;/strong> to ensure reproducibility of results.&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> CI/CD, GitLab, Python, Kubernetes, DevOps, Testing, Automation&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> GitLab CI/CD, Python, Kubernetes, Docker, Automation, Testing, Benchmarking&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Medium to Hard&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/mohammad-firas-sada/">Mohammad Firas Sada&lt;/a>, &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/thomas-a.-defanti/">Thomas A. DeFanti&lt;/a>, &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/jeffrey-weekley/">Jeffrey Weekley&lt;/a>, &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/derek-weitzel/">Derek Weitzel&lt;/a>, &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/dmitry-mishin/">Dmitry Mishin&lt;/a>&lt;/li>
&lt;/ul>
&lt;h3 id="seam--networking--smartnic-programming">Seam / Networking &amp;amp; SmartNIC Programming&lt;/h3>
&lt;p>The proposed work includes writing &lt;strong>P4 programs&lt;/strong> to control network traffic flow, enforce network security policies, and optimize data transfer across the Kubernetes cluster. Students will gain experience with &lt;strong>SmartNICs&lt;/strong> (Xilinx Alveo U55C, SN1000, NVIDIA Bluefield 2) and &lt;strong>Tofino switches&lt;/strong>, using P4 to write &lt;strong>network policies&lt;/strong> and integrate with the &lt;strong>Kubernetes network layer&lt;/strong> (Multus, Calico). Students will also explore &lt;strong>gRPC APIs&lt;/strong> for dynamically adjusting network policies and provisioning virtual network interfaces in real time.&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> Networking, P4 Programming, SmartNICs, Kubernetes Networking, Cloud Computing&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> P4, Networking, SmartNICs, Kubernetes Networking, Multus, Calico, gRPC&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Hard&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/mohammad-firas-sada/">Mohammad Firas Sada&lt;/a>, &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/thomas-a.-defanti/">Thomas A. DeFanti&lt;/a>, &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/jeffrey-weekley/">Jeffrey Weekley&lt;/a>, &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/derek-weitzel/">Derek Weitzel&lt;/a>, &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/dmitry-mishin/">Dmitry Mishin&lt;/a>&lt;/li>
&lt;/ul></description></item><item><title>WaDAR</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/ucsc/wadar/</link><pubDate>Wed, 05 Feb 2025 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/ucsc/wadar/</guid><description>&lt;p>&lt;a href="https://github.com/jlab-sensing/wadar" target="_blank" rel="noopener">WaDAR&lt;/a> (Water Radar) is an innovative, low-cost, hybrid approach to soil moisture sensing that combines the benefits of in-ground (in situ) and remote sensing technologies. Traditional soil moisture measurement methods suffer from drawbacks: in situ sensors are expensive and difficult to maintain, while remote sensing offers lower accuracy and resolution. WaDAR bridges this gap by using inexpensive underground backscatter tags paired with above-ground radars, enabling completely wireless, high-resolution soil moisture monitoring.&lt;/p>
&lt;h2 id="key-features-of-wadar">Key Features of WaDAR&lt;/h2>
&lt;ul>
&lt;li>Uses &lt;strong>RF backscatter tags&lt;/strong> buried underground to provide high-accuracy soil moisture readings.&lt;/li>
&lt;li>Uses &lt;strong>ultra-wideband radar&lt;/strong> for above-ground sensing.&lt;/li>
&lt;li>Offers an average error of just 1.4%, comparable to state-of-the-art commercial sensors.&lt;/li>
&lt;li>Reduces deployment costs significantly, making it accessible for widespread agricultural use.&lt;/li>
&lt;li>Supports real-time, scalable, and maintenance-free soil moisture monitoring for farmers.&lt;/li>
&lt;/ul>
&lt;h3 id="improving-and-optimizing-data-processing-pipeline-for-more-accurate-soil-moisture-measurements">Improving and Optimizing Data Processing Pipeline for More Accurate Soil Moisture Measurements&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> &lt;code>Digital Signal Processing&lt;/code> &lt;code>Machine Learning&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> C/embedded, signal processing, machine learning, MATLAB (optional)&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Moderate&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Medium (175 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/colleen-josephson/">Colleen Josephson&lt;/a>, &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/eric-vetha/">Eric Vetha&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Enhance the accuracy of soil moisture measurements by refining the data processing pipeline.&lt;/p>
&lt;p>Tasks:&lt;/p>
&lt;ul>
&lt;li>Develop and test algorithms for noise reduction and signal improvement.&lt;/li>
&lt;li>Implement advanced filtering and statistical techniques to improve measurement precision.&lt;/li>
&lt;li>Validate improvements using real-world field data.&lt;/li>
&lt;li>Translate algorithms into embedded to be implemented in real-time embedded hardware.&lt;/li>
&lt;/ul>
&lt;h3 id="improving-backscatter-tag-pcb">Improving Backscatter Tag PCB&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> &lt;code>Hardware Design&lt;/code> &lt;code>Signal Processing&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> PCB design, RF knowledge&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Moderate&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Medium (175 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/colleen-josephson/">Colleen Josephson&lt;/a>, &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/eric-vetha/">Eric Vetha&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Enhance the performance of WaDAR&amp;rsquo;s backscatter tags by optimizing PCB design for improved signal-to-noise ratio (SNR) and implementing a communication protocol for tag identification.&lt;/p>
&lt;p>Tasks:&lt;/p>
&lt;ul>
&lt;li>Redesign PCB for improved readings.&lt;/li>
&lt;li>Implement and test a communication protocol to distinguish between multiple tags.&lt;/li>
&lt;li>Evaluate hardware changes in real-world field conditions.&lt;/li>
&lt;li>Optimize power consumption and scalability for practical deployment.&lt;/li>
&lt;/ul></description></item><item><title>Mediglot</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/ucsc/polyphy/</link><pubDate>Tue, 04 Feb 2025 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/ucsc/polyphy/</guid><description>&lt;p>&lt;a href="https://github.com/PolyPhyHub/PolyPhy" target="_blank" rel="noopener">PolyPhy&lt;/a> is a GPU-oriented agent-based system for reconstructing and visualizing &lt;em>optimal transport networks&lt;/em> defined over sparse data. Rooted in astronomy and inspired by nature, we have used an early prototype called &lt;a href="https://github.com/CreativeCodingLab/Polyphorm" target="_blank" rel="noopener">Polyphorm&lt;/a> to reconstruct the &lt;a href="https://youtu.be/5ILwq5OFuwY" target="_blank" rel="noopener">Cosmic web&lt;/a> structure, but also to discover network-like patterns in natural language data. You can see an instructive overview of PolyPhy in our &lt;a href="https://elek.pub/workshop_cross2022.html" target="_blank" rel="noopener">workshop&lt;/a> and more details about our research &lt;a href="https://elek.pub/projects/Rhizome-Cosmology" target="_blank" rel="noopener">here&lt;/a>. Recent projects, such as &lt;a href="https://github.com/PolyPhyHub/PolyGlot" target="_blank" rel="noopener">Polyglot&lt;/a> and &lt;a href="https://github.com/Ayush-Sharma410/MediGlot" target="_blank" rel="noopener">Mediglot&lt;/a> have focused on using PolyPhy to better visualize language embeddings.&lt;/p>
&lt;h3 id="medicinal-language-embeddings">Medicinal Language Embeddings&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> &lt;code>Large Language Models&lt;/code> &lt;code>NLP&lt;/code> &lt;code>Embeddings&lt;/code> &lt;code>Medicine&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> Python, JavaScript, Data Science, Technical Communication&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Challenging&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/oskar-elek/">Oskar Elek&lt;/a>, &lt;a href="mailto:kdeol@ualberta.ca">Kiran Deol&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>This project aims to refine and enhance Mediglot, a web application for visualizing 3D medicinal embeddings, which extends the Polyglot app and leverages the PolyPhy toolkit for network-inspired data science. Mediglot currently enables users to explore high-dimensional vector representations of medicines (derived from their salt compositions) in a 3D space using UMAP, as well as analyze similarity through the innovative Monte-Carlo Physarum Machine (MCPM) metric. Unlike traditional language data, medicinal embeddings do not have an inherent sequential structure. Instead, we must work with the salt compositions of each medicine to create embeddings that are faithful to the intended purpose of each medicine.&lt;/p>
&lt;p>This year, we would like to focus on exploring and integrating state-of-the-art AI techniques and algorithms to improve Mediglot&amp;rsquo;s clustering capabilities and its representation of medicinal data in 3D. The contributor will experiment with advanced large language models (LLMs) and cutting-edge AI methods to develop innovative approaches for refining clustering and extracting deeper insights from medicinal embeddings. Beyond LLMs, we would like to experiment with more traditional language processing methods to design novel embedding procedures. Additionally, we would like to experiment with other similarity metrics. While the similarity of two medicines depends on the initial embedding, we would like to examine the effects of different metrics on the kinds of insights a user can extract. Finally, the contributor is expected to evaluate and compare different algorithms for dimensionality reduction to enhance the faithfulness of the visualization and its interpretability.&lt;/p>
&lt;p>The ideal contributor for this project has experience with Python (and common scientific toolkits such as NumPy, Pandas, SciPy). They will also need some experience with JavaScript and web development (MediGlot is distributed as a vanilla JS web app). Knowledge of embedding techniques for language processing is highly recommended.&lt;/p>
&lt;p>&lt;strong>Specific tasks:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>Closely work with the mentors to understand the context of the project and its detailed requirements in preparation for the proposal.&lt;/li>
&lt;li>Become acquainted with the tooling (PolyPhy, PolyGlot, Mediglot) prior to the start of the project period.&lt;/li>
&lt;li>Explore different embedding techniques for medicinal data (including implementing novel embedding procedures).&lt;/li>
&lt;li>Explore different dimensionality reduction techniques, with a focus on faithful visualizations.&lt;/li>
&lt;li>Document the process and resulting findings in a publicly available report.&lt;/li>
&lt;/ul>
&lt;h3 id="enhancing-polyphy-web-application">Enhancing PolyPhy Web Application&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> &lt;code>Web Development&lt;/code> &lt;code>UI/UX Design&lt;/code> &lt;code>Full Stack Development&lt;/code> &lt;code>JavaScript&lt;/code> &lt;code>Next.js&lt;/code> &lt;code>Node.js&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> Full Stack Web Development, UI/UX Design, JavaScript, Next.js, Node.js, Technical Communication&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Challenging&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Medium (175 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/oskar-elek/">Oskar Elek&lt;/a>, &lt;a href="mailto:kdeol@ualberta.ca">Kiran Deol&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>This project aims to revamp and enhance the PolyPhy web platform to better support contributors, users, and researchers. The goal is to optimize the website’s UI/UX, improve its performance, and integrate Mediglot to provide users with a seamless experience in visualizing both general network structures and 3D medicinal embeddings.&lt;/p>
&lt;p>The contributor will be responsible for improving the website’s overall look, feel, and functionality, ensuring a smooth and engaging experience for both contributors and end-users. This includes addressing front-end and back-end challenges, optimizing the platform for better accessibility, and ensuring seamless integration with Mediglot.&lt;/p>
&lt;p>The ideal candidate should have experience in full-stack web development, particularly with &lt;strong>Next.js&lt;/strong>, &lt;strong>JavaScript&lt;/strong>, and &lt;strong>Node.js&lt;/strong>, and should be familiar with UI/UX design principles. A strong ability to communicate effectively, both in writing and through code, is essential for this role.&lt;/p>
&lt;p>&lt;strong>Specific tasks:&lt;/strong>&lt;/p>
&lt;ol>
&lt;li>&lt;strong>Collaborate with mentors&lt;/strong> to understand the project&amp;rsquo;s goals and the specific requirements for the website improvements.&lt;/li>
&lt;li>&lt;strong>UI/UX Redesign&lt;/strong>:
&lt;ul>
&lt;li>Redesign and enhance the website’s navigation, layout, and visual elements to create an intuitive and visually engaging experience.&lt;/li>
&lt;li>Improve mobile responsiveness for broader accessibility across devices.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Website Performance &amp;amp; Stability&lt;/strong>:
&lt;ul>
&lt;li>Identify and resolve performance bottlenecks, bugs, or issues affecting speed, stability, and usability.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Mediglot Integration&lt;/strong>:
&lt;ul>
&lt;li>Integrate the Mediglot web application with PolyPhy, ensuring seamless functionality and a unified user experience for visualizing medicinal data alongside general network reconstructions.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Documentation&lt;/strong>:
&lt;ul>
&lt;li>Document the development process, challenges, and solutions in a clear and organized manner, ensuring transparent collaboration with mentors and the community.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ol></description></item><item><title>Type Narrowing: A Language Design Benchmark</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/uutah/type-narrowing/</link><pubDate>Sat, 01 Feb 2025 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/uutah/type-narrowing/</guid><description>&lt;p>Untyped languages such as JavaScript and Python provide a flexible starting
point for software projects, but eventually, the lack of reliable types
makes code hard to debug and maintain.
Gradually typed languages such
as
&lt;a href="https://www.typescriptlang.org/" target="_blank" rel="noopener">TypeScript&lt;/a>,
&lt;a href="https://flow.org/" target="_blank" rel="noopener">Flow&lt;/a>,
&lt;a href="https://www.mypy-lang.org/" target="_blank" rel="noopener">Mypy&lt;/a>,
and
&lt;a href="https://microsoft.github.io/pyright/#/" target="_blank" rel="noopener">Pyright&lt;/a>
address the problem with type checkers that can reason about an
ever-growing subset of untyped code.
Widening the subset with precise types is an ongoing challenge.&lt;/p>
&lt;p>Furthermore, designs for precise gradual types need to be reproducible
across languages.
Ideas that works well in one language need to be validated
in other contexts in a principled, scientific way to separate
deep insights from language-specific hacks.&lt;/p>
&lt;p>Type narrowing is a key feature of gradual languages.
Narrowing uses type tests in code to refine types and push
information forward along the paths that the program may follow.
For example, when a type test checks an object field, later
code can trust the type of the field:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">// item :: JSON Object
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">if typeof(item[&amp;#34;price&amp;#34;] == &amp;#34;number&amp;#34;):
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> // item :: JSON Object,
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> // where field &amp;#34;price&amp;#34; :: Number
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> return item[&amp;#34;price&amp;#34;] + (item[&amp;#34;price&amp;#34;] * 0.30) // add tax
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Nearly every gradual language agrees that &lt;em>some form&lt;/em> of type narrowing is needed,
but there is widespread disagreement about how much support is enough.
TypeScript lets users define custom type tests, but it does not analyze
those tests to see whether they are reliable.
Flow does analyze tests.
TypeScript does not allow asymmetric type tests (example: &lt;code>is_even_number&lt;/code>),
but Flow, Mypy and Pyright all do!
None of the above track information compositionally through program
execution, but another gradual language called Typed Racket does
Is the extra machinery in Typed Racket really worth the effort?&lt;/p>
&lt;p>Over the past several months, we have curated a language design
benchmark for type narrowing, &lt;strong>If-T&lt;/strong>:&lt;/p>
&lt;ul>
&lt;li>&lt;a href="https://github.com/utahplt/ift-benchmark" target="_blank" rel="noopener">https://github.com/utahplt/ift-benchmark&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>The benchmark presents type system challenges in a language-agnostic way
to facilitate reproducibility across languages.
It also includes a &lt;a href="https://github.com/utahplt/ifT-benchmark/blob/main/DATASHEET.md" target="_blank" rel="noopener">&lt;em>datasheet&lt;/em>&lt;/a>
to encourage cross-language comparisons
that focus on fundamental typing features rather than incidental difference
between languages.
So far, we have implemented the benchmark for five gradual languages.
There are many others to explore, and much more to learn.&lt;/p>
&lt;p>The goal of this project is to replicate and extend the If-T type narrowing
benchmark.
Outcomes include a deep understanding of principled type narrowing,
and of how to construct a benchmark that enables reproducible
cross-language comparisons.&lt;/p>
&lt;p>Related Work:&lt;/p>
&lt;ul>
&lt;li>Type Narrowing in TypeScript
&lt;a href="https://www.typescriptlang.org/docs/handbook/2/narrowing.html" target="_blank" rel="noopener">https://www.typescriptlang.org/docs/handbook/2/narrowing.html&lt;/a>&lt;/li>
&lt;li>Type Narrowing in Python
&lt;a href="https://typing.readthedocs.io/en/latest/spec/narrowing.html#typeguard" target="_blank" rel="noopener">https://typing.readthedocs.io/en/latest/spec/narrowing.html#typeguard&lt;/a>&lt;/li>
&lt;li>Logical Types for Untyped Languages
&lt;a href="https://doi.org/10.1145/1863543.1863561" target="_blank" rel="noopener">https://doi.org/10.1145/1863543.1863561&lt;/a>&lt;/li>
&lt;/ul>
&lt;h3 id="evaluate-new-gradual-languages">Evaluate New Gradual Languages&lt;/h3>
&lt;ul>
&lt;li>Topics: &lt;code>benchmark implementation&lt;/code>, &lt;code>programming languages&lt;/code>, &lt;code>types&lt;/code>&lt;/li>
&lt;li>Skills: Ruby, Lua, Python, Clojure, or PHP&lt;/li>
&lt;li>Difficulty: Medium&lt;/li>
&lt;li>Size: Small&lt;/li>
&lt;li>Mentor: &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/ben-greenman/">Ben Greenman&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Bring the If-T Benchmark to new typecheckers.
Examples include
&lt;a href="https://sorbet.org/" target="_blank" rel="noopener">Sorbet&lt;/a>,
&lt;a href="https://hacklang.org/" target="_blank" rel="noopener">Hack&lt;/a>,
&lt;a href="https://luau.org/" target="_blank" rel="noopener">Luau&lt;/a>,
&lt;a href="https://pyre-check.org/" target="_blank" rel="noopener">Pyre&lt;/a>,
&lt;a href="https://github.com/facebookincubator/cinder" target="_blank" rel="noopener">Cinder / Static Python&lt;/a>,
&lt;a href="https://typedclojure.org/" target="_blank" rel="noopener">Typed Clojure&lt;/a>,
and
(potentially) &lt;a href="https://elixir-lang.org/blog/2024/06/12/elixir-v1-17-0-released/" target="_blank" rel="noopener">Elixir&lt;/a>.
Conduct a scientific, cross-language analysis to discuss the implications
of benchmark results.&lt;/p>
&lt;h3 id="do-unsound-narrowings-lead-to-exploits">Do Unsound Narrowings Lead to Exploits?&lt;/h3>
&lt;ul>
&lt;li>Topics: &lt;code>corpus study&lt;/code>, &lt;code>types&lt;/code>, &lt;code>counterexamples&lt;/code>&lt;/li>
&lt;li>Skills: TypeScript or Python&lt;/li>
&lt;li>Difficulty: Medium&lt;/li>
&lt;li>Size: Small&lt;/li>
&lt;li>Mentor: &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/ben-greenman/">Ben Greenman&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Investigate type narrowing in practice through a corpus study of software projects.
Use the GitHub or Software Heritage APIs to search code for user-defined predicates
and other instances of narrowing. Search for vulnerabilities due to the unsound
typing of user-defined predicates.&lt;/p></description></item><item><title>Environmental NeTworked Sensor (ENTS)</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/ucsc/ents/</link><pubDate>Fri, 31 Jan 2025 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/ucsc/ents/</guid><description>&lt;h3 id="ents-i-web-portal-for-large-scale-sensor-networks">ENTS I: Web portal for large-scale sensor networks&lt;/h3>
&lt;p>
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="Data Visualization Dashboard" srcset="
/project/osre25/ucsc/ents/osp1_huda3c1d46887767e16b865c47973b8288_360491_2d797937cbe25a879de96b44cb5c65b3.webp 400w,
/project/osre25/ucsc/ents/osp1_huda3c1d46887767e16b865c47973b8288_360491_baae6484e015277af7b09e866b6869f5.webp 760w,
/project/osre25/ucsc/ents/osp1_huda3c1d46887767e16b865c47973b8288_360491_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/ucsc/ents/osp1_huda3c1d46887767e16b865c47973b8288_360491_2d797937cbe25a879de96b44cb5c65b3.webp"
width="760"
height="759"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> Data Visualization, Backend, Frontend, UI/UX, Analytics&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong>
&lt;ul>
&lt;li>&lt;em>Required:&lt;/em> React, Javascript, Python, SQL, Git&lt;/li>
&lt;li>&lt;em>Nice to have:&lt;/em> Flask, Docker, CI/CD, AWS, Authentication&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Medium&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/colleen-josephson/">Colleen Josephson&lt;/a>, &lt;a href="mailto:jtmadden@ucsc.edu">John Madden&lt;/a>, &lt;a href="mailto:alevy1@ucsc.edu">Alec Levy&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>The Environmental NeTworked Sensor (ENTS) platform, formally Open Sensing Platform (OSP), implements data visualization website for monitoring microbial fuel cell sensors (see &lt;a href="https://github.com/jlab-sensing/DirtViz" target="_blank" rel="noopener">GitHub&lt;/a>). The mission is to scale up the current platform to support other researchers or citizen scientists in integrating their novel sensing hardware or microbial fuel cell sensors for monitoring and data analysis. Examples of the types of sensors currently deployed are sensors measuring soil moisture, temperature, current, and voltage in outdoor settings. The focus of the software half of the project involves building upon our existing visualization web platform, and adding additional features to support the mission. A live version of the website is available &lt;a href="https://dirtviz.jlab.ucsc.edu/" target="_blank" rel="noopener">here&lt;/a>.&lt;/p>
&lt;p>Below is a list of project ideas that would be beneficial to the ENTS project. You are not limited to the following projects, and encourage new ideas that enhance the platform:&lt;/p>
&lt;ul>
&lt;li>Improve streaming functionality&lt;/li>
&lt;li>Generic interface for sensor measurements&lt;/li>
&lt;li>Logger registration&lt;/li>
&lt;li>Over the air (OTA) configuration updates&lt;/li>
&lt;li>Implement unit tests and API documentation&lt;/li>
&lt;/ul>
&lt;h3 id="ents-ii-hardware-to-for-large-scale-field-sensor-networks">ENTS II: Hardware to for large-scale field sensor networks&lt;/h3>
&lt;p>
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="Hardware" srcset="
/project/osre25/ucsc/ents/featured_huecd1356655ddd10d106d2d602a359510_6281233_b1317e5e84a756a1081cbeec0e17af86.webp 400w,
/project/osre25/ucsc/ents/featured_huecd1356655ddd10d106d2d602a359510_6281233_2fc59e21c5096f7f08aea36f5769242e.webp 760w,
/project/osre25/ucsc/ents/featured_huecd1356655ddd10d106d2d602a359510_6281233_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/ucsc/ents/featured_huecd1356655ddd10d106d2d602a359510_6281233_b1317e5e84a756a1081cbeec0e17af86.webp"
width="760"
height="460"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> Embedded system, wireless communication, low-power remote sensing&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong>
&lt;ul>
&lt;li>&lt;em>Required:&lt;/em> C/C++, Git, Github, PlatformIO&lt;/li>
&lt;li>&lt;em>Nice to have:&lt;/em> STM32 HAL, ESP32 Arduino, protobuf, python, knowledge of standard communication protocols (I2C, SPI, and UART)&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Hard&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/colleen-josephson/">Colleen Josephson&lt;/a>, &lt;a href="mailto:jtmadden@ucsc.edu">John Madden&lt;/a>, &lt;a href="mailto:jlin143@ucsc.edu">Jack Lin&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>The Environmental NeTworked Sensor (ENTS) node aims to be a general purpose hardware platform for outdoor sensing (e.g. agriculture, ecological monitoring, etc.). The typical use case involves a sensor deployment in an agricultural field, remotely uploading measurements without interfering with farming operations. The current hardware revision (&lt;a href="https://github.com/jlab-sensing/soil_power_sensor" target="_blank" rel="noopener">Soil Power Sensor&lt;/a> was originally designed for monitoring power output of microbial fuel cells using high fidelity voltage and current measurement channels, as well as auxiliary sensors such as the SDI-12 &lt;a href="https://metergroup.com/products/teros-21/" target="_blank" rel="noopener">TEROS-21 soil moisture sensor&lt;/a>. The primary activities of this project will involve low-level firmware design and implementation, but may also incorporate hardware design revisions if necessary. We are looking to expand functionality to other external sensors, as well as optimize for power consumption, via significant firmware design activities.&lt;/p>
&lt;p>Long-range, low-power wireless communication is achieved through a LoRa capable STM32 microcontroller with in-lab experiments using an ESP32 microcontroller to enable the simpler WiFi interface. Both wireless interfaces communicate upload measurements to our data visualization dashboard, &lt;strong>ENTS I&lt;/strong>. The combined goal across both of these projects is to create a system that enables researchers to test and evaluate novel sensing solutions. We are looking to make the device usable to a wide range of researchers which may not have a background in electronics, so are interested in design activities that enhance user friendliness.&lt;/p>
&lt;p>In total there will be 2-4 people working on the hardware with progress being tracked on GitHub. Broader project planning is tracked through a Jira board. We intend to have weekly meetings to provide updates on current issue progress along with assigning tasks. Please reach out to &lt;a href="mailto:jtmadden@ucsc.edu">John Madden&lt;/a> if there are any questions or specific ideas for the project.&lt;/p>
&lt;p>Below is a list of project ideas that would be beneficial to the ENTS project. You are not limited to the following projects, and encourage new ideas that enhance the platform:&lt;/p>
&lt;ul>
&lt;li>Backup logging via SD card&lt;/li>
&lt;li>I2C multiplexing for multiple of the same sensors&lt;/li>
&lt;li>Batch sensor measurement uploading&lt;/li>
&lt;/ul></description></item><item><title>Causeway: Scaling Experiential Learning Through Micro-Roles</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/ucsc/causeway/</link><pubDate>Thu, 30 Jan 2025 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/ucsc/causeway/</guid><description>&lt;p>&lt;a href="https://causeway.web.app" target="_blank" rel="noopener">Causeway&lt;/a> is a platform for learning to develop web applications using an Angular, RxJS, NgRx, and Firebase stack. Most online coding tutorials focus on covering the technical syntax or features of a language or framework, which means that new developers don’t have great resources for building a holistic picture of how everything they learn connects to actually developing a complex web application. Causeway breaks down the process of developing a web application into a hierarchy of micro-roles which provides learners with a clear pathway for learning that also translates to a clear process for developing an application. In the longer future, this would also enable learners to easily contribute to projects as they learn through taking on micro-roles for yet-to-be-developed projects. The platform uses the &lt;a href="https://developer.stackblitz.com/platform/api/webcontainer-api" target="_blank" rel="noopener">Stackblitz WebContainer API&lt;/a> to run full applications in the browser for interactive learning.&lt;/p>
&lt;p>Thus far, we have developed a version of the platform that walks learners through the process of developing UI components of a web application as well as containers that contain multiple UI components and are responsible for fetching data from the backend and handling events and updates to the database. We&amp;rsquo;d like to extend the content to cover defining the database schema and entire applications, and to other topics beyond web development like AI/ML. We&amp;rsquo;d like to add quizzes to the experience and explore ways to use Generative AI to augment the learning experience, e.g. to support planning, reflection, and assessment. Finally, we&amp;rsquo;d like to instrument the application with logs and analytics so we can better measure impact and learning outcomes, and develop a stronger CI/CD pipeline.&lt;/p>
&lt;h3 id="causeway--improving-the-core-infrastructure">Causeway / Improving the Core Infrastructure&lt;/h3>
&lt;p>The proposed work includes adding logging, analytics, and a production-level CI/CD pipeline, adding a robust testing framework, and refactoring some of our code into seperate modules. Both roles will also contribute to running usability studies and documenting the platform.&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> Web Development, Educational Technologies, Angular&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> Web development experience, HTML, CSS, Javascript, Angular, RxJS, NgRx, Firebase&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Medium to Hard&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/david-lee/">David Lee&lt;/a>&lt;/li>
&lt;/ul>
&lt;h3 id="causeway--quizzes-and-generative-ai">Causeway / Quizzes and Generative AI&lt;/h3>
&lt;p>The proposed work includes extending the application to support quizzes, adding quizzes for the existing tasks, and exploring the use of generative AI to support the quizzes feature. Both roles will also contribute to running usability studies and documenting the platform.&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> Web Development, Educational Technologies, Angular&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> Web development experience, HTML, CSS, Javascript, Angular, RxJS, NgRx, Firebase, Generative AI&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Medium to Hard&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/david-lee/">David Lee&lt;/a>&lt;/li>
&lt;/ul></description></item><item><title>OpenROAD - An Open-Source, Autonomous RTL-GDSII Flow for Chip Design</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/openroad/openroad/</link><pubDate>Sun, 19 Jan 2025 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/openroad/openroad/</guid><description>&lt;p>The &lt;a href="https://theopenroadproject.org" target="_blank" rel="noopener">OpenROAD&lt;/a> project is a non-profit project, originally funded by DARPA with the aim of creating open-source EDA tools; an Autonomous flow from RTL-GDSII that completes &amp;lt; 24 hrs, to lower cost and boost innovation in IC design. This project is now supported by &lt;a href="precisioninno.com">Precision Innovations&lt;/a>.&lt;/p>
&lt;p>OpenROAD massively scales and supports EWD (Education and Workforce Development) and supports a broad ecosystem making it a vital tool that supports a rapidly growing Semiconductor Industry.&lt;/p>
&lt;p>OpenROAD is the fastest onramp to gain knowledge, skills and create pathways for great career opportunities in chip design. You will develop important software and hardware design skills by contributing to these interesting projects. You will also have the opportunity to work with mentors from the OpenROAD project and other industry experts.&lt;/p>
&lt;p>We welcome a diverse community of designers, researchers, enthusiasts, software engineers and entrepreneurs to use and contribute to OpenROAD and make a far-reaching impact in the rapidly growing, global Semiconductor Industry.&lt;/p>
&lt;h3 id="improving-code-quality-in-openroad">Improving Code Quality in OpenROAD&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: &lt;code>Coding Best Practices in C++&lt;/code>, &lt;code>Code Quality Tooling&lt;/code>, &lt;code>Continuous Integration&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: C++&lt;/li>
&lt;li>&lt;strong>Difficulty&lt;/strong>: Medium&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong>: Medium (175 hours)&lt;/li>
&lt;li>&lt;strong>Mentors&lt;/strong>: &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/matt-liberty/">Matt Liberty&lt;/a> &amp;amp; &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/arthur-koucher/">Arthur Koucher&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>OpenROAD is a large and complex program. This project is to improve the code quality through resolving issues flagged by tools like Coverity and clang-tidy. New tools like the clang sanitizers ASAN/TSAN/UBSAN should also be set up and integrated with the Jenkins CI.&lt;/p>
&lt;h3 id="gui-testing-in-openroad">GUI Testing in OpenROAD&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: &lt;code>Testing&lt;/code>, &lt;code>Continuous Integration&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: C++, Qt&lt;/li>
&lt;li>&lt;strong>Difficulty&lt;/strong>: Medium&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong>: Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors&lt;/strong>: &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/matt-liberty/">Matt Liberty&lt;/a> &amp;amp; &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/peter-gadfort/">Peter Gadfort&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>The OpenROAD GUI is a crucial set of functionality for users to see and investigate their design. GUI testing is specialized and rather different from standard unit testing. The GUI therefore needs improvements to its testing to cover both interaction and rendering. The GUI uses the Qt framework. An open-source testing tool like &lt;a href="https://github.com/faaxm/spix" target="_blank" rel="noopener">https://github.com/faaxm/spix&lt;/a> will be set up and key tests developed. This will provide the framework for all future testing.&lt;/p>
&lt;h3 id="rectilinear-floorplans-in-openroad">Rectilinear Floorplans in OpenROAD&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: &lt;code>Electronic Design Automation&lt;/code>, &lt;code>Algorithms&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: C++, data structures and algorithms&lt;/li>
&lt;li>&lt;strong>Difficulty&lt;/strong>: Medium&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong>: Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors&lt;/strong>: &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/eder-monteiro/">Eder Monteiro&lt;/a> &amp;amp; &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/augusto-berndt/">Augusto Berndt&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>OpenROAD supports block floorplans that are rectangular in shape. Some designs may require more complex shapes to fit. This project extends the tool to support rectilinear polygon shapes as floorplans. This will require upgrading data structures and algorithms in various parts of OpenROAD including floor plan generation, pin placement, and global placement.&lt;/p>
&lt;h3 id="lef-reader-and-database-enhancements-in-openroad">LEF Reader and Database Enhancements in OpenROAD&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: &lt;code>Electronic Design Automation&lt;/code>, &lt;code>Database&lt;/code>, &lt;code>Parsing&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: Boost Spirit parsers, Database, C++&lt;/li>
&lt;li>&lt;strong>Difficulty&lt;/strong>: Medium&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong>: Medium (175 hours)&lt;/li>
&lt;li>&lt;strong>Mentors&lt;/strong>: &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/osama-hammad/">Osama Hammad&lt;/a> &amp;amp; &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/ethan-mahintorabi/">Ethan Mahintorabi&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>LEF (Library Exchange Format) is a standard format for describing physical design rules for integrated circuits. OpenROAD has support for many constructs but some newer ones for advanced process nodes are not supported. This project is to support parsing such information and storing in the OpenDB for use by the rest of the tool.&lt;/p>
&lt;h3 id="orassistant---llm-data-engineering-and-testing">ORAssistant - LLM Data Engineering and Testing&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: &lt;code>Large Language Model&lt;/code>, &lt;code>Machine Learning&lt;/code>, &lt;code>Data Engineering&lt;/code>, &lt;code>Model Deployment&lt;/code>, &lt;code>Testing&lt;/code>, &lt;code>Full-Stack Development&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: large language model engineering, database, evaluation, CI/CD, open-source or related software development, full-stack&lt;/li>
&lt;li>&lt;strong>Difficulty&lt;/strong>: Medium&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong>: Medium (175 hours)&lt;/li>
&lt;li>&lt;strong>Mentor&lt;/strong>: &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/jack-luar/">Jack Luar&lt;/a> &amp;amp; &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/palaniappan-r/">Palaniappan R&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>This project is aimed at enhancing robustness and accuracy for &lt;a href="https://woset-workshop.github.io/PDFs/2024/11_ORAssistant_A_Custom_RAG_ba.pdf" target="_blank" rel="noopener">OR Assistant&lt;/a>, the &lt;a href="https://github.com/The-OpenROAD-Project/ORAssistant" target="_blank" rel="noopener">conversational assistant for OpenROAD&lt;/a> through comprehensive testing and evaluation. You will work with members of the OpenROAD team and other researchers to enhance the existing dataset to cover a wide range of use cases to deliver accurate responses more efficiently. This project will focus on data engineering and benchmarking and you will collaborate on a project on the LLM model engineering. Tasks include: creating evaluation pipelines, building databases to gather feedback, improving CI/CD, writing documentation, and improving the backend and frontend services as needed (non-exhaustive). You will gain valuable experience and skills in understanding chip design flows and applications. Open to proposals from all levels of ML practitioners.&lt;/p>
&lt;h3 id="orassistant---llm-model-engineering">ORAssistant - LLM Model Engineering&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: &lt;code>Large Language Model&lt;/code>, &lt;code>Machine Learning&lt;/code>, &lt;code>Model Architecture&lt;/code>, &lt;code>Model Deployment&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: large language model engineering, prompt engineering, fine-tuning&lt;/li>
&lt;li>&lt;strong>Difficulty&lt;/strong>: Medium&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong>: Medium (175 hours)&lt;/li>
&lt;li>&lt;strong>Mentor&lt;/strong>: &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/jack-luar/">Jack Luar&lt;/a> &amp;amp; &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/palaniappan-r/">Palaniappan R&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>This project is aimed at enhancing robustness and accuracy for &lt;a href="https://woset-workshop.github.io/PDFs/2024/11_ORAssistant_A_Custom_RAG_ba.pdf" target="_blank" rel="noopener">OR Assistant&lt;/a>, the &lt;a href="https://github.com/The-OpenROAD-Project/ORAssistant" target="_blank" rel="noopener">conversational assistant for OpenROAD&lt;/a> through enhanced model architectures. You will work with members of the OpenROAD team and other researchers to explore alternate architectures beyond the existing RAG-based implementation. This project will focus on improving reliability and accuracy of the existing model architecture. You will collaborate on a tandem project on data engineering for OR assistant. Tasks include: reviewing and understanding the state-of-the-art in retrieval augmented generation, implementing best practices, caching prompts, improving relevance and accuracy metrics, writing documentation and improving the backend and frontend services as needed (non-exhaustive). You will gain valuable experience and skills in understanding chip design flows and applications. Open to proposals from all levels of ML practitioners.&lt;/p></description></item><item><title>RAG-ST: Retrieval-Augmented Generation for Spatial Transcriptomics</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/uci/rag-st/</link><pubDate>Wed, 15 Jan 2025 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/uci/rag-st/</guid><description>&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> bioinformatics, spatial transcriptomics, gene expression generation, retrieval-augmented generation, large models&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong>
&lt;ul>
&lt;li>&lt;strong>Programming Languages:&lt;/strong>
&lt;ul>
&lt;li>Proficient in Python, and familiarity with machine learning libraries such as PyTorch.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Data Analysis:&lt;/strong>
&lt;ul>
&lt;li>Experience with spatial transcriptomics datasets and statistical modeling.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Machine Learning:&lt;/strong>
&lt;ul>
&lt;li>Understanding of vision models, retrieval-based systems, and MLP architectures.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Bioinformatics Knowledge (preferred):&lt;/strong>
&lt;ul>
&lt;li>Familiarity with scRNA-seq data integration and computational biology tools.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Advanced&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Large (350 hours). Given the scope of integrating RAG models, building a robust database, and ensuring interpretable predictions, this project involves substantial computational and data preparation work.&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/ziheng-duan/">Ziheng Duan&lt;/a> (contact person)&lt;/li>
&lt;/ul>
&lt;h3 id="project-idea-description">&lt;strong>Project Idea Description&lt;/strong>&lt;/h3>
&lt;p>Spatial transcriptomics (ST) is a revolutionary technology that provides spatially resolved gene expression measurements, enabling researchers to study cellular behaviour within tissues with unprecedented detail. This technology has transformed our understanding of complex biological systems, such as disease progression, tissue development, and cellular heterogeneity. However, the widespread adoption of ST is limited by its high cost and technical requirements.&lt;/p>
&lt;p>Histology imaging, on the other hand, is far more accessible and cost-effective. If gene expression could be accurately predicted from histology images, it would enable researchers to leverage these abundant images for high-resolution biological insights without the need for expensive spatial transcriptomics experiments. This task has immense potential to democratize spatial transcriptomics research and significantly reduce costs.&lt;/p>
&lt;h3 id="challenges-in-current-approaches">&lt;strong>Challenges in Current Approaches&lt;/strong>&lt;/h3>
&lt;p>Current methods for predicting gene expression from histology images typically involve:&lt;/p>
&lt;ol>
&lt;li>Using large vision models to encode histology image patches into embeddings.&lt;/li>
&lt;li>Employing Multi-Layer Perceptrons (MLPs) to map these embeddings to gene expression profiles.&lt;/li>
&lt;/ol>
&lt;p>While these approaches have shown promise, they suffer from two critical limitations:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Accuracy&lt;/strong>: The MLP-based mappings often fail to fully capture the biological complexity encoded in the histology images, leading to suboptimal predictions.&lt;/li>
&lt;li>&lt;strong>Interpretability&lt;/strong>: These models act as black boxes, providing no insight into the underlying biological rationale for the predictions. Researchers cannot determine why a specific gene expression profile was generated, limiting trust and utility in biological contexts.&lt;/li>
&lt;/ul>
&lt;h3 id="project-motivation">&lt;strong>Project Motivation&lt;/strong>&lt;/h3>
&lt;p>To overcome these limitations, this project proposes a novel &lt;strong>Retrieval-Augmented Generation (RAG)&lt;/strong> framework for spatial transcriptomics. Instead of relying solely on black-box MLPs, RAG-ST will:&lt;/p>
&lt;ul>
&lt;li>Retrieve relevant examples from a curated database of paired histology images, scRNA-seq data, and gene expression profiles.&lt;/li>
&lt;li>Use these retrieved examples to inform and enhance the generation process, resulting in predictions that are both more accurate and biologically interpretable.&lt;/li>
&lt;/ul>
&lt;p>This approach not only grounds predictions in biologically meaningful data but also provides transparency by revealing which database entries influenced the results.&lt;/p>
&lt;h3 id="project-objectives">&lt;strong>Project Objectives&lt;/strong>&lt;/h3>
&lt;ol>
&lt;li>&lt;strong>Database Construction&lt;/strong>:
&lt;ul>
&lt;li>Curate a large and diverse database of histology images paired with scRNA-seq and gene expression data.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Model Development&lt;/strong>:
&lt;ul>
&lt;li>Develop a RAG framework combining vision-based encoders and retrieval-enhanced generation techniques.&lt;/li>
&lt;li>Incorporate interpretability mechanisms to link predicted gene expressions to retrieved examples.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Evaluation and Benchmarking&lt;/strong>:
&lt;ul>
&lt;li>Assess RAG-ST against state-of-the-art methods, focusing on accuracy, interpretability, and biological validity.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ol>
&lt;h3 id="project-deliverables">&lt;strong>Project Deliverables&lt;/strong>&lt;/h3>
&lt;ol>
&lt;li>&lt;strong>Curated Database&lt;/strong>:
&lt;ul>
&lt;li>A publicly available, well-documented database of histology images and gene expression profiles.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>RAG-ST Framework&lt;/strong>:
&lt;ul>
&lt;li>An open-source Python implementation of the RAG-ST model, with retrieval, generation, and visualization tools.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Benchmark Results&lt;/strong>:
&lt;ul>
&lt;li>Comprehensive evaluations demonstrating the benefits of RAG-ST over conventional pipelines.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Documentation and Tutorials&lt;/strong>:
&lt;ul>
&lt;li>User-friendly guides to facilitate adoption by the spatial transcriptomics research community.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ol>
&lt;h3 id="impact">&lt;strong>Impact&lt;/strong>&lt;/h3>
&lt;p>By integrating retrieval-augmented generation with large models, RAG-ST represents a paradigm shift in spatial transcriptomics. It offers a cost-effective, accurate, and interpretable solution for gene expression prediction, democratizing access to high-quality spatial transcriptomic insights and fostering advancements in biological research.&lt;/p>
&lt;hr></description></item><item><title>FEP-Bench: Benchmarking for Enhanced Feature Engineering and Preprocessing in Machine Learning</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre24/uchicago/fep_bench/</link><pubDate>Mon, 03 Jun 2024 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre24/uchicago/fep_bench/</guid><description>&lt;p>&lt;strong>Project Idea Description&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> Storage systems, machine learning&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> Python, PyTorch, Bash scripting, Linux, Machine Learning modeling&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Hard&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/yuyang-roy-huang/">Yuyang (Roy) Huang&lt;/a> (primary contact), &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/swami-sundararaman/">Swami Sundararaman&lt;/a>&lt;/li>
&lt;li>&lt;strong>Contributor(s):&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/lihaowen-jayce-zhu/">Lihaowen (Jayce) Zhu&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>In the realm of machine learning (ML), preprocessing of data is a critical yet often underappreciated phase, consuming approximately 80% of the time in common ML tasks. This extensive time consumption can be attributed to various challenges encountered from both data and computation perspectives.&lt;/p>
&lt;p>From the data side, one significant challenge is the slow retrieval of data from data lakes, which are storage repositories that hold a vast amount of raw data in its native format. However, the process of extracting this data can be slow, causing computation cycles to wait for data arrival and leading to delays in the entire preprocessing phase. Furthermore, the size of the data often exceeds the memory capacity of standard computing systems. This is a frequent occurrence in ML, as datasets are typically large and complex. Handling such large datasets requires sophisticated memory management techniques to ensure efficient preprocessing without overwhelming the system&amp;rsquo;s memory.&lt;/p>
&lt;p>On the computation side, a naive solution to data operations, especially aggregation, often leads to inefficiencies. These operations may require grouping a large chunk of data as a prerequisite before performing any actual computation. This grouping, without careful configuration and management, can trigger serious data shuffling, leading to extensive remote data movement when the data is distributed across various storage systems. Such data movement is not only time-consuming but also resource-intensive.&lt;/p>
&lt;p>To mitigate these challenges, there is a pressing need to design better caching, prefetching, and heuristic strategies for data preprocessing. The team aims to significantly reduce the time and resources required for preprocessing by optimizing data retrieval and computational processes.&lt;/p>
&lt;p>However, prior to the design and implementation of such a system, a systematic understanding of the preprocessing workflow is essential. Hence, throughout the program, the students will need to:&lt;/p>
&lt;ul>
&lt;li>Understand the current system used to preprocess data for ML training, for example, Hadoop or Spark.&lt;/li>
&lt;li>Collect the common datasets used for different types of ML models.&lt;/li>
&lt;li>Collect the typical operations used for preprocessing these datasets.&lt;/li>
&lt;li>Benchmark the performance in these operations under the existing frameworks under various experimental settings.&lt;/li>
&lt;li>Package the benchmark such that the team can later use it for reproduction or evaluation.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Project Deliverable&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>A rolodex for the commonly used dataset and corresponding preprocess operations and expected output formats/types&lt;/li>
&lt;li>A Chameleon Trovi package that preprocess the dataset with single-machine preprocessing framework like pandas&lt;/li>
&lt;li>A Chameleon Trovi package that preprocess the dataset in an existing distributed computation framework like Hadoop or Spark&lt;/li>
&lt;/ul></description></item><item><title>(Re)Evaluating Artifacts for Understanding Resource Artifacts</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre24/depaul/reevaluating/</link><pubDate>Wed, 20 Mar 2024 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre24/depaul/reevaluating/</guid><description>&lt;p>&lt;strong>Project Idea Description&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> Virtualization, Containerization, Profiling, Reproducibility&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> C and Python and DevOps experience.&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Medium&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Large; 350 hours&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/tanu-malik/">Tanu Malik&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>This project aims to characterize computer-science related artifacts that are either submitted to conferences or deposited in reproducibility hubs such as Chameleon. We aim to characterize experiments into different types and understand reproducibility requirements of this rich data set, possibly leading to a benchmark.
We will then understand packaging requirements, especially of distributed experiments and aim to instrument a package archiver to reproduce a distributed experiment. Finally, we will use learned experiment characteristics to develop a classifier that will determine alternative resources where experiment can be easily reproduced.&lt;/p>
&lt;p>&lt;strong>Project Deliverable&lt;/strong>
Specific Tasks include:
A pipeline consisting of a set of scripts to characterize artifacts.
Packaged artifacts and an analysis report with open-sourced data about the best guidelines to package using Chameleon.
A classifier system based on artifact and resource characteristics.&lt;/p></description></item><item><title>Auto Appendix</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre24/tuwien/autoappendix/</link><pubDate>Mon, 11 Mar 2024 14:48:10 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre24/tuwien/autoappendix/</guid><description>&lt;p>The SC Conference Series, a leading forum on High Performance Computing (HPC), supports scientific rigor through an enhanced reproducibility of accepted papers.
To that end, all manuscripts submitted to the SC Technical Papers program must contain an Artifact Description.
Authors of accepted papers may request reproducibility badges, for which an Appendix describing the
Artifact Evaluation is required.&lt;/p>
&lt;p>In recent years, &lt;a href="https://www.chameleoncloud.org" target="_blank" rel="noopener">Chameleon&lt;/a> has facilitated SC&amp;rsquo;s reproducibility initiative by enabling authors to develop and share computational, reproducible artifacts through the Chameleon cloud.
The Chameleon platform helps authors and reviewers to easily share computational artifacts,
which are included in the papers&amp;rsquo; artifact appendices.&lt;/p>
&lt;p>The proposed project aims to assess all AD/AE appendices submitted for reproducibility badge requests. This evaluation will focus on AD/AE appendices that utilized the Chameleon cloud as the execution platform, examining their potential for automation.
Our aim is to evaluate the feasibility of fully automating various components of the appendices.
Students will engage directly with the chairs of the SC24 Reproducibility Initiative in this effort.&lt;/p>
&lt;h3 id="advancing-sc-conference-artifact-reproducibility-via-automation">&lt;strong>Advancing SC Conference Artifact Reproducibility via Automation&lt;/strong>&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: &lt;code>Reproducibility&lt;/code> &lt;code>Reproducible Research&lt;/code> &lt;code>Artifact Evaluation&lt;/code> &lt;code>Open Science&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: HPC, Cloud computing, Chameleon, MPI, OpenMP, CUDA&lt;/li>
&lt;li>&lt;strong>Difficulty&lt;/strong>: Difficult&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong>: Large&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/sascha-hunold/">Sascha Hunold&lt;/a>&lt;/li>
&lt;li>&lt;strong>Tasks&lt;/strong>:
&lt;ul>
&lt;li>Perform an analysis of the current limitations of AD/AE appendices submitted for Artifact Evaluation.&lt;/li>
&lt;li>Re-run the computational artifacts to identify areas for enhancement, with a primary objective of achieving full automation of Artifact Evaluation using the Chameleon cloud.&lt;/li>
&lt;li>Evaluate the existing automation capabilities of the Chameleon cloud.&lt;/li>
&lt;li>Develop a set of recommendations for structuring Computational Artifacts, aimed at benefiting future SC conferences.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul></description></item><item><title>ML-Powered Problem Detection in Chameleon</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre24/uchicago/ml_detect_chameleon/</link><pubDate>Wed, 06 Mar 2024 16:33:57 -0600</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre24/uchicago/ml_detect_chameleon/</guid><description>&lt;p>Today’s Continuous Integration/Continuous Development (CI/CD) trends encourage
rapid design of software using a wide range of software components, followed by
frequent updates that are immediately deployed on the cloud. The complexity of
cloud systems along with the component diversity and break-neck pace of
development amplify the difficulty in identifying or fixing problems related to
performance, resilience, and security. Furthermore, existing approaches that
rely on human experts—e.g., methods involving manually-written
rules/scripts—have limited applicability to modern CI/CD processes, as they are
fragile, costly, and often not scalable. Consequently, there is growing
interest in applying machine learning (ML) based methods for identifying
vulnerabilities in code, non-compliant or otherwise problematic software, and
resilience problems in systems and networks. However, despite some success
stories in applying AI for cloud operations (e.g., in resource management),
much of cloud operations still rely on human-centric methods, which require
updates as the cloud undergoes CI/CD cycles. The goal of this summer project is
to explore methods of automation for the Chameleon Cloud to enable faster
detection and diagnosis of problems. Overall, the project will contribute to an
overarching vision of building an infrastructure that collects and synthesizes
cross-layer data from large-scale cloud systems, applying ML-powered methods to
automate cloud ops, and, further, making this data available to researchers
through coherent APIs and analytics engines.&lt;/p>
&lt;p>Currently, Chameleon uses runbooks as manual guides for operational tasks,
including routine maintenance and troubleshooting. However, these traditional
runbooks often fall short in dynamic and fast-paced CI/CD environments, as they
lack the flexibility to adapt to changes in software versions, deployment
configurations, and the unique challenges of emerging issues. To overcome these
challenges, the project will leverage ML to automate anomaly detection based on
telemetry data collected from Chameleon Cloud&amp;rsquo;s monitoring frameworks. This
method will not only facilitate rapid identification of performance anomalies
but also enable automated generation of runbooks. These runbooks can then offer
operators actionable steps to resolve issues efficiently, thereby making the
anomaly mitigation process more efficient. Furthermore, this approach supports
the automatic creation of targeted runbooks for newly generated support
tickets, enhancing response times and system reliability.&lt;/p>
&lt;p>Time-permitting, using a collection of automated runbooks (each targeting a
specific problem), we will analyze support tickets, common problems, and their
frequency to offer insights and suggestions to help roadmapping for Chameleon
Cloud to offer the best return on investment on fixing problems.&lt;/p>
&lt;p>A key aspect of this summer project is enhancing the reproducibility of
experiments in the cloud and improving data accessibility. We plan to design
infrastructures and APIs so that the telemetry data that is essential for
anomaly detection and automated runbooks is systematically documented and made
available. We also aim to collect and share insights and modules on applying ML
for cloud operations, including ML pipelines, data labeling strategies, data
preprocessing techniques, and feature engineering. By sharing these insights,
we aim to promote best practices and support reproducible experiments on public
clouds, thus fostering future ML-based practices within the Chameleon Cloud
community and beyond. Time permitting, we will explore applying lightweight
privacy-preserving approaches on telemetry data as well.&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: &lt;code>Machine Learning&lt;/code>, &lt;code>Anomaly Detection&lt;/code>, &lt;code>Automated Runbooks&lt;/code>, &lt;code>Telemetry Data&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>:
&lt;ul>
&lt;li>Proficiency in Machine Learning: Understanding of ML algorithms for anomaly detection and automation.&lt;/li>
&lt;li>Cloud Computing Knowledge: Familiarity with CI/CD environments and cloud architectures.&lt;/li>
&lt;li>Programming Skills: Proficiency in languages such as Python, especially in cloud and ML contexts.&lt;/li>
&lt;li>Data Analysis: Ability to analyze telemetry data using data analytics tools and libraries.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Difficulty&lt;/strong>: Hard&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong>: Large&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/michael-sherman/">Michael Sherman&lt;/a>&lt;/li>
&lt;/ul></description></item><item><title>ReproNB: Reproducibility of Interactive Notebook Systems</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre24/depaul/repronb/</link><pubDate>Mon, 26 Feb 2024 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre24/depaul/repronb/</guid><description>&lt;p>&lt;strong>Project Idea Description&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> HPC, MPI, distributed systems&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> C++, Python&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Difficult&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Large; 350 hours&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/tanu-malik/">Tanu Malik&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Notebooks have gained wide popularity in scientific computing. A notebook is both a web-based interactive front- end to program workflows and a lightweight container for sharing code and its output. Reproducing notebooks in different target environments, however, is a challenge. Notebooks do not share the computational environment in which they are executed. Consequently, despite being shareable they are often not reproducible. We have developed &lt;a href="https://github.com/depaul-dice/Flinc" target="_blank" rel="noopener">FLINC&lt;/a> (see also &lt;a href="https://dice.cs.depaul.edu/pdfs/pubs/C31.pdf" target="_blank" rel="noopener">eScience'22 paper&lt;/a>) to address this problem. However, it currently does not support all forms of experiments, especially those relating to HPC experiments. In this project we will extend FLINC to HPC experiments. This will involve using recording and replaying mechanisms such as &lt;a href="https://kento.github.io/code/" target="_blank" rel="noopener">ReMPI&lt;/a> and &lt;a href="https://rr-project.org/" target="_blank" rel="noopener">rr&lt;/a> within FLINC.&lt;/p>
&lt;p>&lt;strong>Project Deliverable&lt;/strong>&lt;/p>
&lt;p>The project deliverable will be a set of HPC experiments that are packaged with FLINC and available on Chamaeleon.&lt;/p></description></item><item><title>SciStream-Rep: An Artifact for Reproducible Benchmarks of Scientific Streaming Applications</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre24/anl/scistream/</link><pubDate>Mon, 26 Feb 2024 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre24/anl/scistream/</guid><description>&lt;p>&lt;a href="https://github.com/scistream/scistream-proto" target="_blank" rel="noopener">SciStream&lt;/a> is a framework and toolkit that attempts to tackle the problem of enabling high-speed(+100Gbps), memory-to-memory data streaming in scientific environments. This task is particularly challenging because data producers (e.g., data acquisition applications on scientific instruments, simulations on supercomputers) and consumers (e.g., data analysis applications) may be in different security domains and thus require bridging of those domains. Furthermore, either producers, consumers, or both may lack external network connectivity and thus require traffic forwarding proxies. If you want to learn more, please take a look at our &lt;a href="https://dl.acm.org/doi/abs/10.1145/3502181.3531475" target="_blank" rel="noopener">HPDC'22 paper&lt;/a>.&lt;/p>
&lt;h3 id="scistream-rep-an-artifact-for-reproducible-benchmarks-of-scientific-streaming-applications">SciStream-Rep: An Artifact for Reproducible Benchmarks of Scientific Streaming Applications&lt;/h3>
&lt;p>&lt;strong>Project Idea Description:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: Network Performance Testing, Benchmarking, Data Streaming, Reproducibility&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: Python, Scripting, Linux, Containers, Networking, benchmark tools&lt;/li>
&lt;li>&lt;strong>Difficulty&lt;/strong>: Medium&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong>: Large (350) hours&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/joaquin-chung/">Joaquin Chung&lt;/a>, &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/flavio-castro/">Flavio Castro&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>This project focuses on expanding the scope of testing SciStream’s architecture by incorporating a variety of traffic patterns based on real scientific applications. The goal is to understand how different traffic patterns influence the performance of memory-to-memory data streaming in scientific scenarios by creating artifacts for reproducible experiments. Additionally, the project will explore the use of different forwarding elements, such as Nginx and HAProxy, to assess their impact on data streaming efficiency and security.&lt;/p>
&lt;p>Reproducibility is especially difficult in shared network environments such as Chameleon and FABRIC testbeds. We can expect similar results for two exact same experiments, only when the network condition (external to our traffic) is similar for both experiments. By creating reproducible artifacts for Chameleon and FABRIC, we can build statistical confidence in the measured results by multiple repetitions from other researchers.&lt;/p>
&lt;p>The Specific Tasks of the Project Include:&lt;/p>
&lt;ul>
&lt;li>Developing a set of benchmarks to measure the performance of scientific streaming applications across a broader range of traffic patterns.&lt;/li>
&lt;li>Creating a set of artifacts for generating traffic patterns typical of data streaming applications.&lt;/li>
&lt;li>Deploying various forwarding elements within the SciStream architecture for the Chameleon and FABRIC testbeds.&lt;/li>
&lt;li>Compiling a best practices document detailing the optimal configurations for Scistream.&lt;/li>
&lt;/ul>
&lt;h3 id="scistream-lb-a-dynamic-load-balancing-solution-using-programmable-network-devices">Scistream-LB: A Dynamic Load Balancing Solution Using Programmable network devices&lt;/h3>
&lt;p>&lt;strong>Project Idea Description:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: Network Performance Testing, Data Streaming, Reproducibility, Programmable Data Planes&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: Python/Scripting, Linux, Docker/Containers, Networking fundamentals, Experience with OpenFlow/P4 programming&lt;/li>
&lt;li>&lt;strong>Difficulty&lt;/strong>: Difficult&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong>: Large (350) hours&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/joaquin-chung/">Joaquin Chung&lt;/a>, &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/flavio-castro/">Flavio Castro&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>The aim of this project is to create a specialized forwarding element using OpenFlow (OF) or P4 programming languages, tailored to enhance the SciStream data plane. This new development seeks to enable a more flexible and hardware-based (and therefore more efficient) alternative to conventional software-based forwarding mechanisms like NGINX or HAProxy, specifically designed to support the needs of high-performance data streaming environments for scientific applications. The OF/P4 forwarding elements will be packaged as artifacts for reproducibility experiments in Chameleon and FABRIC testbeds. Reproducibility is especially difficult in shared network environments such as Chameleon and FABRIC testbeds. We can expect similar results for two exact same experiments, only when the network condition (external to our traffic) is similar for both experiments. By creating reproducible artifacts for Chameleon and FABRIC, we can build statistical confidence in the measured results by multiple repetitions from other researchers.&lt;/p>
&lt;p>Specific tasks of the project include:&lt;/p>
&lt;ul>
&lt;li>Design and implementation of an OF/P4-based forwarding element that can be seamlessly integrated with the data plane of SciStream’s architecture.&lt;/li>
&lt;li>Forwarding logic that supports efficient and secure memory-to-memory data streaming.&lt;/li>
&lt;li>A set of benchmarks for evaluating the new forwarding element against traditional options, focusing on improvements in throughput, latency, and security.&lt;/li>
&lt;li>An investigation on the potential advantages of programmable network elements for detailed control over data streaming paths and security configurations.&lt;/li>
&lt;li>A package of the newly developed forwarding elements as artifacts for reproducibility experiments in Chameleon and FABRIC testbeds.&lt;/li>
&lt;/ul></description></item><item><title>Chameleon Trovi Redesign</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre24/uchicago/trovi/</link><pubDate>Wed, 21 Feb 2024 13:43:55 -0600</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre24/uchicago/trovi/</guid><description>&lt;p>&lt;a href="https://www.chameleoncloud.org/experiment/share" target="_blank" rel="noopener">Trovi&lt;/a> on
&lt;a href="https://www.chameleoncloud.org" target="_blank" rel="noopener">Chameleon&lt;/a> is an open-source service designed
to significantly enhance the &lt;a href="https://wordpress.cels.anl.gov/nimbusproject/wp-content/uploads/sites/116/2023/08/Reproducibility_On_Chameleon-3.pdf" target="_blank" rel="noopener">practical
reproducibility&lt;/a>
of computer science research. By allowing Chameleon users to upload, share, and
access packaged experiments and other research artifacts, Trovi aims to
streamline the process of replicating and building upon existing studies. This
capability is crucial in the scientific community, where the ability to
accurately reproduce research results is as fundamental to validating,
critiquing, and extending scientific findings as reading papers. The importance
of Trovi lies in its potential to serve as a centralized hub that facilitates
the exchange of valuable research outputs, promotes transparency, and fosters
collaboration among researchers. By improving the ease with which experiments
can be replicated and data can be shared, Trovi supports the advancement of
knowledge and innovation in the field of computer science, making it an
essential tool for researchers seeking to contribute to the development of
reproducible and robust scientific research.&lt;/p>
&lt;p>This project will focus on the evolution of Trovi. It will aim to enhance Trovi
as a tool to advance practical reproducibility in CS research. Students will
evaluate the most important use cases and enabling features necessary to
enhance Trovi&amp;rsquo;s functionality and user experience. With these design insights,
students will then create a robust interface that allows researchers to
integrate experiment code and data easily as packaged artifacts, similar to the
user-friendly design of Google Colab, and build off other users&amp;rsquo; artifacts to
create novel experiments, similar to the design of GitHub. Furthermore,
students will create comprehensive documentation with valuable insights into
what works well and what requires improvement, creating a dynamic feedback loop
to guide the ongoing redesign process. Lastly, students will actively
participate in designing webinars, creating and posting video tutorials, and
organizing academic events at the University of Chicago to showcase the work on
Trovi. This multifaceted project ensures a well-rounded experience and fosters
a collaborative learning environment.&lt;/p>
&lt;p>Each of the project ideas below focuses on a different aspect of the overall
goal to enhance Trovi as a tool for advancing practical reproducibility in
CS research. They are designed to offer a comprehensive approach,
from technical development to community engagement, ensuring a well-rounded
enhancement of the service.&lt;/p>
&lt;h3 id="user-interface-redesign-for-experiment-artifacts-sharing">&lt;strong>User Interface Redesign for Experiment Artifacts Sharing&lt;/strong>&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: &lt;code>User Interface Design&lt;/code> &lt;code>User Experience&lt;/code> &lt;code>Web Development&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: HTML/CSS, JavaScript, UX design principles&lt;/li>
&lt;li>&lt;strong>Difficulty&lt;/strong>: Moderate to Hard&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong>: Medium to Large&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/mark-powers/">Mark Powers&lt;/a>&lt;/li>
&lt;li>&lt;strong>Tasks&lt;/strong>:
&lt;ul>
&lt;li>Conduct user research to understand the needs and pain points of current
and potential Trovi users.&lt;/li>
&lt;li>Design wireframes and prototypes that incorporate user feedback and aim to
simplify the process of uploading, sharing, and reusing research artifacts.&lt;/li>
&lt;li>Implement the frontend redesign using a modern web framework to ensure
responsiveness and ease of use.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h3 id="packaged-artifacts-integration-system">&lt;strong>Packaged Artifacts Integration System&lt;/strong>&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: &lt;code>Cloud Computing&lt;/code> &lt;code>Data Management&lt;/code> &lt;code>Web APIs&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: Python, RESTful APIs, Docker, Git&lt;/li>
&lt;li>&lt;strong>Difficulty&lt;/strong>: Hard&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong>: Large&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/mark-powers/">Mark Powers&lt;/a>&lt;/li>
&lt;li>&lt;strong>Tasks&lt;/strong>:
&lt;ul>
&lt;li>Develop a system that allows users to easily package and upload their
experimental code and data to Trovi.&lt;/li>
&lt;li>Create a standardized format or set of guidelines for packaging experiments
to ensure consistency and ease of use.&lt;/li>
&lt;li>Implement API endpoints that enable automated uploads, downloads, and
integration with other tools like GitHub or Zenodo.&lt;/li>
&lt;li>Test the system with real-world experiments to ensure reliability and ease
of integration.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h3 id="community-engagement-and-educational-materials">&lt;strong>Community Engagement and Educational Materials&lt;/strong>&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: &lt;code>Educational Technology&lt;/code> &lt;code>Community Building&lt;/code> &lt;code>Content Creation&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: Video Editing, Public Speaking, Event Planning&lt;/li>
&lt;li>&lt;strong>Difficulty&lt;/strong>: Moderate&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong>: Medium&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/mark-powers/">Mark Powers&lt;/a>&lt;/li>
&lt;li>&lt;strong>Tasks&lt;/strong>:
&lt;ul>
&lt;li>Design and organize webinars that introduce Trovi and its new features to
the research community.&lt;/li>
&lt;li>Create engaging video tutorials that guide users through the process of
using Trovi for their research needs.&lt;/li>
&lt;li>Develop comprehensive documentation that covers both basic and advanced use
cases, troubleshooting, and tips for effective collaboration using Trovi.&lt;/li>
&lt;li>Organize academic events, such as workshops or hackathons, that encourage
the use of Trovi for collaborative research projects.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h3 id="feedback-loop-and-continuous-improvement-system">&lt;strong>Feedback Loop and Continuous Improvement System&lt;/strong>&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: &lt;code>Software Engineering&lt;/code> &lt;code>Data Analysis&lt;/code> &lt;code>User Feedback&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: Python, SQL, Data Visualization, Web Development&lt;/li>
&lt;li>&lt;strong>Difficulty&lt;/strong>: Moderate&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong>: Medium&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/mark-powers/">Mark Powers&lt;/a>&lt;/li>
&lt;li>&lt;strong>Tasks&lt;/strong>:
&lt;ul>
&lt;li>Implement a system within Trovi for collecting, storing, and analyzing user
feedback and usage data.&lt;/li>
&lt;li>Develop dashboards that visualize feedback trends and identify areas for
improvement.&lt;/li>
&lt;li>Create mechanisms for users to easily report bugs, request features, and
offer suggestions for the platform.&lt;/li>
&lt;li>Use the collected data to prioritize development efforts and continuously
update the platform based on user needs and feedback.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul></description></item><item><title>Data leakage in applied ML: reproducing examples of irreproducibility</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre24/nyu/data-leakage/</link><pubDate>Wed, 21 Feb 2024 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre24/nyu/data-leakage/</guid><description>&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> applied machine learning, data leakage, reproducibility&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> Python, data analysis, machine learning&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Medium&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/fraida-fund/">Fraida Fund&lt;/a> and &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/mohamed-saeed/">Mohamed Saeed&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Project Idea Description&lt;/strong>&lt;/p>
&lt;p>Data leakage &lt;a href="https://www.cell.com/patterns/pdfExtended/S2666-3899%2823%2900159-9" target="_blank" rel="noopener">has been identified&lt;/a> as a major cause of irreproducibility of a paper&amp;rsquo;s findings, when machine learning techniques are applied to problems in science. Data leakage includes errors such as:&lt;/p>
&lt;ul>
&lt;li>pre-processing before splitting into training/test sets&lt;/li>
&lt;li>feature selection before splitting into training/test sets&lt;/li>
&lt;li>duplicated data points in both training and test sets&lt;/li>
&lt;li>temporal leakage (e.g. shuffled K-fold cross validation with temporal data)&lt;/li>
&lt;li>group leakage (e.g. shuffled K-fold cross validation with data that has group structure)&lt;/li>
&lt;/ul>
&lt;p>and leads to an overly optimistic evaluation of model performance, such that the finding may no longer be the same when the error is corrected.&lt;/p>
&lt;p>Despite the seriousness of this problem, data leakage is often not covered in introductory machine learning courses, and many users of machine learning across varied science domains are unaware of it. Even those who have learned &amp;ldquo;rules&amp;rdquo; for avoiding data leakage (e.g. &amp;ldquo;never do feature selection on the test set&amp;rdquo;) may not understand the reasons for these &amp;ldquo;rules&amp;rdquo;, and how important they are for ensuring that the final result is valid and reproducible.&lt;/p>
&lt;p>The goal of this project is to create &lt;em>learning materials&lt;/em> demonstrating how instances of data leakage invalidate a result. These materials should be easily adoptable by instructors teaching machine learning in a wide variety of contexts, including those teaching a non-CS audience. To achieve this, the project proposes to re-implement published results that have been affected by data leakage, and package these implementations along with supporting material in a format suitable for use in classrooms and by independent learners. For each &amp;ldquo;irreproducible result&amp;rdquo;, the &amp;ldquo;package&amp;rdquo; should include -&lt;/p>
&lt;ul>
&lt;li>a re-implementation of the original result&lt;/li>
&lt;li>an explanation of the data leakage problem affecting the result, with an implementation of a &amp;ldquo;toy example&amp;rdquo; on synthetic data&lt;/li>
&lt;li>a re-implementation of the result without the data analysis error, to show how the finding is affected&lt;/li>
&lt;li>and examples of exam or homework questions that an instructor adopting this package may use to assess understanding.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Writing a successful proposal for this project&lt;/strong>&lt;/p>
&lt;p>A good proposal for this project should include, for at least a few &amp;ldquo;types&amp;rdquo; of data leakage mentioned above -&lt;/p>
&lt;ul>
&lt;li>a specific published result that could be used as an exemplar (you may find ideas among the review papers listed &lt;a href="https://reproducible.cs.princeton.edu/#rep-failures" target="_blank" rel="noopener">here&lt;/a>)&lt;/li>
&lt;li>a brief description of the details of the experiment that will reproduce that result (e.g. what data is used, what machine learning technique is used, what are the hyperparameters used for training)&lt;/li>
&lt;li>and an explanation of why this result is suitable for this use (it uses a publicly available dataset, a machine learning technique that is familiar and accessible to students in an introductory course, the paper has sufficient detail to reproduce the result, etc.)&lt;/li>
&lt;/ul>
&lt;p>The contributor will need to create learning materials that are written in a clear, straightforward, and concise manner, without unncessary jargon. The proposal should show evidence of the contributor&amp;rsquo;s writing abilities.&lt;/p>
&lt;p>&lt;strong>Github link&lt;/strong>&lt;/p>
&lt;p>There is no pre-existing Git repository for this project - at the beginning of the summer, the contributor will create a new repository in the &lt;a href="https://github.com/teaching-on-testbeds/" target="_blank" rel="noopener">Teaching on Testbeds&lt;/a> organization, and the project materials will &amp;ldquo;live&amp;rdquo; there.&lt;/p>
&lt;p>To get a sense of the type of code you would be writing, here is an example of a learning module related to data leakage (however, it is not in the format described above): &lt;a href="https://colab.research.google.com/github/ffund/ml-notebooks/blob/master/notebooks/4-linear-regression-case-study-part-2.ipynb" target="_blank" rel="noopener">Beauty in the Classroom&lt;/a>&lt;/p>
&lt;p>&lt;strong>Project Deliverables&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&amp;ldquo;Packages&amp;rdquo; of learning materials for teaching about common types of data leakage&lt;/li>
&lt;li>&lt;a href="https://chameleoncloud.org/experiment/share/" target="_blank" rel="noopener">Trovi&lt;/a> artifacts for &amp;ldquo;playing back&amp;rdquo; each of the &amp;ldquo;packages&amp;rdquo;&lt;/li>
&lt;/ul></description></item><item><title>Evaluating congestion controls past and future</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre24/nyu/congestion-control/</link><pubDate>Wed, 21 Feb 2024 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre24/nyu/congestion-control/</guid><description>&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> computer networks, congestion control, reproducibility&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> Python, Bash scripting, Linux, computer network performance evaluation&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Medium&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/fraida-fund/">Fraida Fund&lt;/a> and &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/ashutosh-srivastava/">Ashutosh Srivastava&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Project Idea Description&lt;/strong>&lt;/p>
&lt;p>In computer networks, congestion control protocols play an outsize role in determining our experience with networked applications. New congestion control algorithms are regularly proposed by researchers to improve throughput and latency performance, adapt to new types of networks, and align more closely with the needs of new applications.&lt;/p>
&lt;p>However, our understanding of the benefits of a new congestion control protocol depends to a large extent on the evaluation - the network topology, the network delay and throughput, the type of flow, the type of competing traffic - and there is no single standard way to evaluate a congestion control protocol. The &lt;a href="https://pantheon.stanford.edu/static/pantheon/documents/pantheon-paper.pdf" target="_blank" rel="noopener">Pantheon&lt;/a> project (which is no longer supported) sought to fill this gap somewhat and address the problem of reproducibility of congestion control results, but their approach is not easily adapted to evaluation scenarios representative of new types of applications or networks. Nor is it capable of representing the evaluation scenarios in most published results related to congestion control.&lt;/p>
&lt;p>The goal of this project, therefore is to create an evaluation suite for congestion control protocols that can be used to reproduce existing congestion control results in the academic literature, &lt;em>and&lt;/em> to evaluate new protocols under similar evaluation conditions, &lt;em>and&lt;/em> to be easily extended to new scenarios. An &amp;ldquo;evaluation scenario&amp;rdquo; includes:&lt;/p>
&lt;ul>
&lt;li>a Python notebook to realize the network topology on the FABRIC and/or Chameleon testbed, and configure the network characteristics,&lt;/li>
&lt;li>scripts to generate the data flow(s) needed for the evaluation,&lt;/li>
&lt;li>and scripts to capture data from the experiment and visualize the results.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Writing a successful proposal for this project&lt;/strong>&lt;/p>
&lt;p>To write a good proposal for this project, you should review the most influential papers on TCP congestion control, and especially those related to TCP protocols that are available in the Linux kernel.&lt;/p>
&lt;p>Use your findings to explain what your proposed evaluation suite will include (what network topologies, what flow generators), and justify this with reference to the academic literature. Also indicate which &lt;em>specific results&lt;/em> you expect to be able to reproduce using this suite (e.g. include figures from influential papers showing evaluation results! with citation, of course).&lt;/p>
&lt;p>You can also take advantage of existing open source code that reproduces a congestion control result, e.g. &lt;a href="https://github.com/sdatta97/imcbbrrepro" target="_blank" rel="noopener">Replication: When to Use and When Not to Use BBR&lt;/a>, or &lt;a href="https://github.com/ashutoshs25/bbr-dominance-experiments" target="_blank" rel="noopener">Some of the Internet may be heading towards BBR dominance: an experimental study&lt;/a>.&lt;/p>
&lt;p>&lt;strong>Github link&lt;/strong>&lt;/p>
&lt;p>There is no pre-existing Git repository for this project - at the beginning of the summer, the contributor will create a new repository for this project.&lt;/p>
&lt;p>&lt;strong>Project Deliverables&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&amp;ldquo;Packages&amp;rdquo; of evaluation scenarios that can be used to evaluate a congestion control algorithm implemented in the Linux kernel&lt;/li>
&lt;li>&lt;a href="https://chameleoncloud.org/experiment/share/" target="_blank" rel="noopener">Trovi&lt;/a> artifacts for realizing each evaluation scenario on Chameleon&lt;/li>
&lt;/ul></description></item><item><title>Automatic reproducibility of COMPSs experiments through the integration of RO-Crate in Chameleon</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre24/bsc/ro-crate-compss/</link><pubDate>Mon, 19 Feb 2024 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre24/bsc/ro-crate-compss/</guid><description>&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> Provenance, reproducibility, standards, image creation&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> Python, JSON, Bash scripting, Linux, image creation and deployment&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Medium&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/raul-sirvent/">Raül Sirvent&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Project Idea Description&lt;/strong>&lt;/p>
&lt;p>The &lt;a href="https://compss.bsc.es/" target="_blank" rel="noopener">COMPSs programming model&lt;/a> provides an interface for the programming of a
sequential application that is transformed in a workflow that, thanks to the COMPSs runtime, is later
scheduled in the available computing resources. Programming is enabled for different languages through
the use of bindings: Java, C/C++ and Python (named PyCOMPSs).
COMPSs is able to generate &lt;a href="https://compss-doc.readthedocs.io/en/stable/Sections/05_Tools/04_Workflow_Provenance.html" target="_blank" rel="noopener">Workflow Provenance information&lt;/a>
after the execution of an experiment. The generated artifact (code + data + recorded metadata)
enables the sharing of results through the use of tools such as the &lt;a href="https://workflowhub.eu/" target="_blank" rel="noopener">WorkflowHub portal&lt;/a>,
that provides the capacity of generating a DOI of the results to include them as permanent references
in scientific papers.&lt;/p>
&lt;p>The format of the metadata generated in COMPSs experiments follows the &lt;a href="https://www.researchobject.org/ro-crate/" target="_blank" rel="noopener">RO-Crate specification&lt;/a>,
and, more specifically, two &lt;a href="https://www.researchobject.org/ro-crate/profiles.html" target="_blank" rel="noopener">profiles&lt;/a>:
the Workflow and Workflow Run Crate profiles. This metadata enables not only the sharing of results, but also their
reproducibility.&lt;/p>
&lt;p>This project proposes the creation of a service that enables the automatic reproducibility of COMPSs experiments
in the Chameleon infrastructure. The service will be able to get a COMPSs crate (artifact that follows the RO-Crate
specification), and, by parsing the available metadata, build a Chameleon compatible image for reproducing the
experiment in the testbed. Small modifications to the COMPSs RO-Crate are foreseen (i.e. the inclusion of third party
software required by the application).&lt;/p>
&lt;p>&lt;strong>Project Deliverables&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>Study the different environments and specifications (COMPSs, RO-Crate, Chameleon, Trovi, &amp;hellip;).&lt;/li>
&lt;li>Design the most appropriate integration, considering all the elements involved.&lt;/li>
&lt;li>Integrate PyCOMPSs basic experiments reproducibility in Chameleon.&lt;/li>
&lt;li>Integrate PyCOMPSs complex experiments reproducibility in Chameleon (i.e. with third party software dependencies).&lt;/li>
&lt;/ul></description></item><item><title>BenchmarkST: Cross-Platform, Multi-Species Spatial Transcriptomics Gene Imputation Benchmarking</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre24/uci/benchmarkst/</link><pubDate>Sat, 17 Feb 2024 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre24/uci/benchmarkst/</guid><description>&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> bioinformatics, spatial transcriptomics, gene imputation, benchmarking, cross-platform/species analysis&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong>
&lt;ul>
&lt;li>&lt;strong>Programming Languages:&lt;/strong>
&lt;ul>
&lt;li>Proficient in Python and/or R, commonly used in bioinformatics.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Data Analysis:&lt;/strong>
&lt;ul>
&lt;li>Experience with statistical data analysis and machine learning models.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Bioinformatics Knowledge (not required but preferred):&lt;/strong>
&lt;ul>
&lt;li>Proficiency in bioinformatics and computational biology.&lt;/li>
&lt;li>Familiarity with spatial transcriptomics datasets and platforms.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Advanced&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Large (350 hours). Given the scope of integrating multi-platform, multi-species datasets and the complexity of benchmarking gene imputation methods, this project is substantial. It requires extensive data preparation, analysis, and validation phases, making it suitable for a larger time investment.&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/ziheng-duan/">Ziheng Duan&lt;/a> (contact person)&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Project Idea Description&lt;/strong>&lt;/p>
&lt;p>The orchestration of cellular life is profoundly influenced by the precise control of gene activation and silencing across different spatial and temporal contexts. Understanding these complex spatiotemporal gene expression patterns is vital for advancing our knowledge of biological processes, from development and disease progression to adaptation. While single-cell RNA sequencing (scRNA-seq) has revolutionized our ability to profile gene expression across thousands of cells simultaneously, its requirement for cell dissociation strips away the critical spatial context, limiting our comprehension of cellular interactions within their native environments. Recent strides in spatial transcriptomics have started to bridge this gap by enabling spatially resolved gene expression measurements at single-cell or even sub-cellular resolutions. These advancements offer unparalleled opportunities to delineate the intricate tapestry of gene expression within tissues, shedding light on the dynamic interactions between cells and their surroundings.&lt;/p>
&lt;p>Despite these technological advances, a significant challenge remains: the datasets generated by spatial transcriptomic technologies are often incomplete, marred by missing gene expression values due to various technical and biological constraints. This limitation severely impedes our ability to fully interpret these rich datasets and extract meaningful insights from them. Gene imputation emerges as a pivotal solution to this problem, aiming to fill in these missing data points, thereby enhancing the resolution, quality, and interpretability of spatial transcriptomic datasets.&lt;/p>
&lt;p>Recognizing the critical importance of this task, there is a pressing need for a unified benchmarking platform that can facilitate the evaluation and comparison of gene imputation methods across a diverse array of samples, spanning multiple sampling platforms, species, and organs. Currently, the bioinformatics and spatial transcriptomics fields lack such a standardized framework, hindering progress and innovation. To address this gap, our project aims to establish a comprehensive gene imputation dataset that encompasses a wide range of conditions and parameters. We intend to reproduce known methods and assess their efficacy, providing a solid and reproducible foundation for future advancements in this domain.&lt;/p>
&lt;p>&lt;strong>Project Deliverable&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>A comprehensive, preprocessed benchmark dataset that spans multiple sampling platforms, species, and organs, aimed at standardizing gene imputation tasks in spatial transcriptomics.&lt;/li>
&lt;li>An objective comparison of state-of-the-art gene imputation methodologies, enhancing the understanding of their performance and applicability across diverse biological contexts.&lt;/li>
&lt;li>A user-friendly Python package offering a suite of gene imputation tools, designed to fulfill the research needs of the spatial transcriptomics community by improving data completeness and reproducibility.&lt;/li>
&lt;/ul></description></item><item><title>ScaleRep: Reproducing and benchmarking scalability bugs hiding in cloud systems</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre24/osu/scalerep/</link><pubDate>Sat, 10 Feb 2024 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre24/osu/scalerep/</guid><description>&lt;p>&lt;strong>Topics:&lt;/strong> Distributed systems, Scalability, Bug analysis, Bug reproducibility&lt;br>
&lt;strong>Skills:&lt;/strong> Java, Python, bash scripting, perf, Linux internals&lt;br>
&lt;strong>Difficulty:&lt;/strong> Hard&lt;br>
&lt;strong>Size:&lt;/strong> Large (350 hours)&lt;br>
&lt;strong>Mentors:&lt;/strong> &lt;strong>&lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/bogdan-bo-stoica/">Bogdan &amp;quot;Bo&amp;quot; Stoica&lt;/a> (contact person)&lt;/strong>, &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/yang-wang/">Yang Wang&lt;/a>&lt;/p>
&lt;p>&lt;strong>Project Idea Description&lt;/strong>&lt;/p>
&lt;p>Large-scale distributed systems are integral to the infrastructure of a wide range of applications and services.
The continuous evolution of these systems requires ongoing efforts to address inherent faults which span a variety of issues including availability, consistency, concurrency, configuration, durability, error-handling, integrity, performance, and security.
Recent developments in the field and the rise of cloud computing have been marked by a notable increase in the scale at which such systems operate.&lt;/p>
&lt;p>This increase in scale introduces specific challenges, particularly in terms of system reliability and performance.
As distributed systems expand beyond single machines, addressing the growing demands for computation, memory and storage becomes more difficult.
This underlying complexity leads to the emergence of scalability bugs — defects that surface in large-scale deployments, yet do not reveal themselves in a small-scale setting.&lt;/p>
&lt;p>To better understand scalability bugs, we set out to investigate a set of scalability issues documented over the last 5 years from 10 popular open-source large-scale systems.
These bugs have led to significant operational challenges, such as system downtime, reduced responsiveness, data loss, and data corruption.
Moreover, addressing them required extensive collaboration and problem-solving efforts among engineers and bug reporters, with discussions often spanning a month or more.&lt;/p>
&lt;p>We observed that traditional bug finding techniques are insufficient for detecting scalability bugs since these defects are triggered by a mixture of scale-related aspects not properly investigated by previous approaches.
These characteristics include the number of components involved, the system load and workload size, the reliability of recovery protocols, and the magnitude of intermediate failures.
Although previous research examined some of these aspects, it has typically done so either in isolation (individually), or without providing a comprehensive understanding of the fundamental bug patterns, symptoms, root causes, fixes, and, more importantly, how easily these bugs can be reproduced in-house.&lt;/p>
&lt;p>Therefore, the main goal of this project is to systematically understand, characterize, and document the challenges associated with scalability bugs, at-large.
Our approach is twofold: first, to analyze scalability bugs in terms of reproducibility, and second, to develop methodologies for triggering them and measuring their impact.
Specifically, we aim to:&lt;/p>
&lt;ol>
&lt;li>Provide detailed accounts of bug reproduction experiences for a diverse set of recently reported scalability bugs from our benchmark applications;&lt;/li>
&lt;li>Identify specific challenges that prevent engineers from reproducing certain scalability bugs and investigate how prevalent these obstacles are;&lt;/li>
&lt;li>Create a suite of protocols to effectively trigger and quantify the impact of scalability bugs, facilitating their investigation in smaller-scale environments.&lt;/li>
&lt;/ol>
&lt;p>&lt;strong>Project Deliverable&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>A set of Trovi replayable artifacts enabling other researchers to easily reproduce scalability bugs for our benchmark applications;&lt;/li>
&lt;li>A set of Jupyter notebook scripts allowing to conveniently replay each step in our investigation;&lt;/li>
&lt;li>A detailed breakdown of the challenges faced when reproducing scalability bugs and how these obstacles differ from those related to more “traditional” types of bugs.&lt;/li>
&lt;/ul></description></item><item><title>GPEC: An Open Emulation Platform to Evaluate GPU/ML Workloads on Erasure Coding Storage</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre24/lanl/gpec/</link><pubDate>Thu, 08 Feb 2024 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre24/lanl/gpec/</guid><description>&lt;p>&lt;strong>Project Idea Description&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> Storage Systems, Machine Learning, Erasure Coding&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> C/C++, Python, PyTorch, Bash scripting, Linux, Erasure Coding, Machine Learning&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Hard&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/meng-wang/">Meng Wang&lt;/a> (primary contact), &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/john-bent/">John Bent&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Large-scale data centers store immense amounts of user data across a multitude of disks, necessitating redundancy strategies like erasure coding (EC) to safeguard against disk failures. Numerous research efforts have sought to assess the performance and durability of various erasure coding approaches, including single-level erasure coding, locally recoverable coding, and multi-level erasure coding.&lt;/p>
&lt;p>Despite its widespread adoption, a significant research gap exists regarding the performance of large-scale erasure-coded storage systems when exposed to machine learning (ML) workloads. While conventional practice often leans towards replication for enhanced performance, this project seeks to explore whether cost-effective erasure encoding can deliver comparable performance. In this context, several fundamental questions remain unanswered, including:
Can a typical erasure-coded storage system deliver sufficient throughput for ML training tasks?
Can an erasure-coded storage system maintain low-latency performance for ML training and inference workloads?
How does disk failure and subsequent repair impact the throughput and latency of ML workloads?
What influence do various erasure coding design choices, such as chunk placement strategies and repair methods, have on the aforementioned performance metrics?&lt;/p>
&lt;p>To address these questions, the most straightforward approach would involve running ML workloads on large-scale erasure coded storage systems within HPC data centers. However, this presents challenges for researchers and students due to limited access to expensive GPUs and distributed storage systems, especially when dealing with large-scale evaluations. Consequently, there is a need for a cost-effective evaluation platform.&lt;/p>
&lt;p>The objective of this project is to develop an open-source platform that facilitates cheap and reproducible evaluations of erasure-coded storage systems concerning ML workloads. This platform consists of two key components:
GPU Emulator: This emulator is designed to simulate GPU performance for ML workloads. Development of the GPU emulator is near completion.
EC Emulator: This emulator is designed to simulate the performance characteristics of erasure-coded storage systems. It is still in the exploratory phase and requires further development.&lt;/p>
&lt;p>The student&amp;rsquo;s responsibilities will include documenting the GPU emulator, progressing the development of the EC emulator, and packaging the experiments to ensure easy reproducibility. It is anticipated that this platform will empower researchers and students to conduct cost-effective and reproducible evaluations of large-scale erasure-coded storage systems in the context of ML workloads.&lt;/p>
&lt;p>&lt;strong>Project Deliverable&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>Build an EC emulator to emulate the performance characteristics of large-scale erasure-coded storage systems&lt;/li>
&lt;li>Incorporate the EC emulator into ML workloads and GPU emulator&lt;/li>
&lt;li>Conduct reproducible experiments to evaluate the performance of erasure-coded storage systems in the context of ML workloads&lt;/li>
&lt;li>Publish a Trovi artifact shared on Chameleon Cloud and a GitHub repository with open-source code&lt;/li>
&lt;/ul></description></item><item><title>Turn on, Tune in, Listen up: Maximizing Side-Channel Recovery in Cross-Platform Time-to-Digital Converters</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre24/ucsc/turnontunein/</link><pubDate>Thu, 08 Feb 2024 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre24/ucsc/turnontunein/</guid><description>&lt;p>&lt;a href="https://github.com/KastnerRG/PL-Sensors" target="_blank" rel="noopener">Turn on, Tune in, Listen Up&lt;/a> Is an open-source framework for implementing voltage flucturation sensors in FPGA devices for use in side-channel security research. Side-channels are an ever present hardware security threat. The reconfigurability of FPGAs significantly broadens the side-channel attack surface in many cloud heterogeneous systems. We have developed a highly tunable side-channel sensor, which significantly improves side-channel attack time and resolution in multiple contexts. Concurrent users sharing the same device may attack one another through the power side-channel (&lt;a href="https://dl.acm.org/doi/abs/10.1145/3543622.3573193" target="_blank" rel="noopener">check out our paper&lt;/a>), while consecutive users may attack one another through measurement of the physical wear-out state of the FPGA device (&lt;a href="https://arxiv.org/abs/2303.17881" target="_blank" rel="noopener">check out our paper&lt;/a>). We have demonstrated these attack surfaces on both Intel (Altera) and AMD (Xilinx) platforms. Currently, our open-sourced sensor design and side-channel analysis flow is limited to AMD devices. We are seeking CSE/CS/CE/ECE researchers interested in FPGA design, heterogeneous computing and/or hardware security to combine our Intel and AMD side-channel sensors into a unified attack framework and comparing capabilities between vendors.&lt;/p>
&lt;h3 id="open-source-sensor-repository-updates">Open-source sensor repository updates&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> &lt;code>Hardware security&lt;/code>, &lt;code>cloud security&lt;/code>, &lt;code>heterogeneous computing&lt;/code>, &lt;code>temporal and spatial side-channels&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> Experience with GitHub, FPGA development (AMD or Intel), and Python&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Moderate&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="mailto:drichmond@ucsc.edu">Dustin Richmond&lt;/a>, &lt;a href="mailto:tsheaves@ucdavis.edu">Tyler Sheaves&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Update existing open-source voltage fluctuation sensor to support both AMD and Intel devices. Currently our repository exclusively supports AMD FPGAs. We have added new features to our sensor and have demonstrated an implementation on Intel. We would like to consolidate this work into a unified repository containing side-channel analysis demonstrations using open-source target benchmark designs.&lt;/p>
&lt;p>Specific tasks:&lt;/p>
&lt;ul>
&lt;li>Adapt existing tooling scripts to support multiple vendor tool flows.&lt;/li>
&lt;li>Adapt existing test infrastructure to target multiple SoC-type FPGA platforms (i.e. DE10-Nano, Pynq Z2, etc.).&lt;/li>
&lt;li>Evaluate cross-platform sensor architecture on a collection of benchmark designs. Demonstrate each benchmark using a cross-platform unified side-channel analysis framework.&lt;/li>
&lt;li>Draw a comparison between sensor implementations on different architectures.&lt;/li>
&lt;/ul></description></item><item><title>Artificial Intelligence Explainability Accountability</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre24/ucsc/aiealab/</link><pubDate>Wed, 07 Feb 2024 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre24/ucsc/aiealab/</guid><description>&lt;h2 id="trustworthy-logical-reasoning-large-language-models--llms">Trustworthy Logical Reasoning Large Language Models (LLMs)&lt;/h2>
&lt;p>Logical LLMs is a project to translate the output from large language models (LLM) into a logic-based programming language (prolog) to detect inconsistencies and hallucinations automatically . The goals of this project would be to build a user interface for users to be able to give feedback which can be incorporated into the system. The project goal is to create a trustworthy hybrid open-source LLM tool that can learn from user feedback and explain its mistakes.&lt;/p>
&lt;h3 id="collect-hallucinations-and-facts">Collect Hallucinations and Facts&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: AI/ML, data collection, logic, user interfaces&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: javascript, html, python, bash, git&lt;/li>
&lt;li>&lt;strong>Difficulty&lt;/strong>: Easy/Moderate&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong>: Large&lt;/li>
&lt;li>&lt;strong>Mentors&lt;/strong>: &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/leilani-h.-gilpin/">Leilani H. Gilpin&lt;/a> (and a PhD student TBD).&lt;/li>
&lt;/ul>
&lt;h3 id="specific-tasks">Specific Tasks&lt;/h3>
&lt;ul>
&lt;li>Run queries in an LLM API with various prompts.&lt;/li>
&lt;li>Create a user interface system that collects user feedback in a web
browser.&lt;/li>
&lt;li>Create a pipeline for storing the user data in a common format that
can be shared in our database.&lt;/li>
&lt;li>Document the tool for future maintenance.&lt;/li>
&lt;/ul>
&lt;h2 id="explaining-failures-in-autograding">Explaining failures in autograding&lt;/h2>
&lt;p>The eXplainable autograder (XAutograder) is a tool for autograding student coding assignments, while providing personalized explanations or feedback. The goal of this project is to create an introductory set of coding assignment with explanations of wrong answers. This benchmark suite will be used for testing our system. The project goal is to create a dynamic autograding system that can learn from student&amp;rsquo;s code and explain their mistakes&lt;/p>
&lt;h3 id="design-introductory-questions-and-explanations">Design introductory questions and explanations&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: AI/ML, AI for education, XAI (Explainable AI_&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: python, git&lt;/li>
&lt;li>&lt;strong>Difficulty&lt;/strong>: Moderate&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong>: Large&lt;/li>
&lt;li>&lt;strong>Mentors&lt;/strong>: &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/leilani-h.-gilpin/">Leilani H. Gilpin&lt;/a> (and a PhD student TBD).&lt;/li>
&lt;/ul>
&lt;h3 id="specific-tasks">Specific Tasks&lt;/h3>
&lt;ul>
&lt;li>Design 5-10 basic programming questions (aggregated from online,
other courses, etc).&lt;/li>
&lt;li>Create tests of correctness (unit tests), and a testing framework
which can input a set of answers, and provide a final assessment&lt;/li>
&lt;li>Create a set of baseline explanations for various error cases, e.g.,
out of bounds error, syntax error, etc.&lt;/li>
&lt;li>Create a pipeline for iterating on the test cases and/or explanation
feedback.&lt;/li>
&lt;li>Document the tool for future maintenance.&lt;/li>
&lt;/ul></description></item><item><title>Causeway: Learning Web Development Through Micro-Roles</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre24/ucsc/causeway/</link><pubDate>Wed, 07 Feb 2024 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre24/ucsc/causeway/</guid><description>&lt;p>&lt;a href="https://tech4good-causeway.web.app/#/tutorial/quarter-goals?c=01-quarter-goals-component&amp;amp;r=01-component-elements&amp;amp;s=01-intro-to-causeway" target="_blank" rel="noopener">Causeway&lt;/a> is a platform for learning to develop web applications using an Angular, RxJS, NgRx, and Firebase stack. Most online coding tutorials focus on covering the technical syntax or features of a language or framework, which means that new developers don’t have great resources for building a holistic picture of how everything they learn connects to actually developing a complex web application. Causeway breaks down the process of developing a web application into a hierarchy of micro-roles which provides learners with a clear pathway for learning that also translates to a clear process for developing an application. In the longer future, this would also enable learners to easily contribute to projects as they learn through taking on micro-roles for yet-to-be-developed projects. The platform uses the &lt;a href="https://developer.stackblitz.com/platform/api/webcontainer-api" target="_blank" rel="noopener">Stackblitz WebContainer API&lt;/a> to run full applications in the browser for interactive learning.&lt;/p>
&lt;p>Thus far, we have developed a version of the platform that walks learners through the process of developing presentational components of a web application as well as smart components / containers that contain multiple presentational components and are responsible for fetching data from the backend and handling events and updates to the database. This content is still using Angular 13 and needs to be updated to Angular 17, as well as to make some improvements in our use of RxJS, NgRx, and Firebase. We’d also like to extend the content in multiple ways including: 1) extending the walkthrough to more components and containers besides the single example we have, ideally in a way that covers a complete application, and 2) extending beyond components and containers to cover defining database entities and relationships. We’d also like to develop a learning dashboard where users can see the different micro-roles and lessons that they’ve completed or that are upcoming for the project they are working on.&lt;/p>
&lt;h3 id="causeway--improving-the-core-infrastructure-and-experience">Causeway / Improving the Core Infrastructure and Experience&lt;/h3>
&lt;p>The proposed work includes updating the platform and the example infrastructure within the platform to the latest version of Angular and other associated libraries, implementing and testing logging and analytics, implementing a learning dashboard for users, and time permitting, creating new modules to cover defining database entities and relationships. Both roles will also contribute to running usability studies and documenting the platform so that it can be open-sourced.&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> Web Development, Educational Technologies, Angular&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> Web development experience, HTML, CSS, Javascript, Angular, RxJS, NgRx, Firebase&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Medium to Hard&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/david-lee/">David Lee&lt;/a>&lt;/li>
&lt;/ul>
&lt;h3 id="causeway--extend-the-learning-scope-and-experience">Causeway / Extend the Learning Scope and Experience&lt;/h3>
&lt;p>The proposed work includes extending the component and container walkthroughs to cover a complete interactive application. This means writing a separate simple application, and organizing the code required to do so into units of work organized by our micro-role structure. Both roles will also contribute to running usability studies and documenting the platform so that it can be open-sourced.&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> Web Development, Educational Technologies, Angular&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> Web development experience, HTML, CSS, Javascript, Angular, RxJS, NgRx, Firebase&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Medium&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/david-lee/">David Lee&lt;/a>&lt;/li>
&lt;/ul></description></item><item><title>LAST: Let’s Adapt to System Drift</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre24/anl/last/</link><pubDate>Wed, 07 Feb 2024 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre24/anl/last/</guid><description>&lt;p>&lt;strong>Project Idea Description&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> Computer systems, machine learning&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> Python, PyTorch, Bash scripting, Linux, Data Science and Machine Learning&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Hard&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/ray-andrew-sinurat/">Ray Andrew Sinurat&lt;/a> (primary contact), &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/sandeep-madireddy/">Sandeep Madireddy&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>The performance of computer systems is constantly evolving, a natural outcome of updating hardware, improving software, and encountering hardware quirks over time. At the same time, machine learning (ML) models are becoming increasingly popular. They are being used widely to address various challenges in computer systems, notably in speeding up decision-making. This speed is vital for a quick and flexible response, essential for meeting service-level agreements (SLAs). Yet, an interesting twist has emerged: like the computer systems they aid, ML models also experience a kind of &amp;ldquo;aging.&amp;rdquo; This results in a gradual decline in their effectiveness, a consequence of changes in their operating environment.&lt;/p>
&lt;p>The phenomenon of model &amp;ldquo;aging&amp;rdquo; is a ubiquitous occurrence across various domains, not limited merely to computer systems. This process of aging can significantly impact the performance of a model, emphasizing the critical importance of early detection mechanisms to maintain optimal functionality. In light of this, numerous strategies have been formulated to mitigate the aging of models. However, the generalizability and effectiveness of these strategies across diverse domains, particularly in computer systems, remain largely unexplored. This research aims to bridge this gap by designing and implementing a comprehensive data analysis pipeline. The primary objective is to evaluate the efficacy of various strategies through a comparative analysis, focusing on their performance in detecting and addressing model aging. To achieve a better understanding of this issue, the research will address the following pivotal questions:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Data-Induced Model Aging&lt;/strong>: What specific variations within the data can precipitate the aging of a model? Understanding the nature and characteristics of data changes that lead to model deterioration is crucial for developing effective prevention and mitigation strategies.&lt;/li>
&lt;li>&lt;strong>Efficacy of Aging Detection Algorithms&lt;/strong>: How proficient are the current algorithms in identifying the signs of model aging? Assessing the accuracy and reliability of these algorithms will provide insights into their practical utility in real-world scenarios.&lt;/li>
&lt;li>&lt;strong>Failure Points in Detection&lt;/strong>: In what scenarios or under what data conditions do the aging detection mechanisms fail? Identifying the limitations and vulnerabilities of these algorithms is vital for refining their robustness and ensuring comprehensive coverage.&lt;/li>
&lt;li>&lt;strong>Scalability and Responsiveness&lt;/strong>: How do these algorithms perform in terms of robustness and speed, particularly when subjected to larger datasets? Evaluating the scalability and responsiveness of the algorithms will determine their feasibility and effectiveness in handling extensive and complex datasets, a common characteristic in computer systems.&lt;/li>
&lt;/ul>
&lt;p>To better understand and prevent issues related to model performance, our approach involves analyzing various datasets, both system and non-system, that have shown notable changes over time. We aim to apply machine learning (ML) models to these datasets to assess the effects of these changes on model performance. Our goal is to leverage more advanced ML techniques to create new algorithms that address these challenges effectively. This effort is expected to contribute significantly to the community, enhancing the detection of model aging and improving model performance in computer systems.&lt;/p>
&lt;p>&lt;strong>Project Deliverable&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>Run pipeline on several computer systems and non-computer systems dataset&lt;/li>
&lt;li>A Trovi artifact for data preprocessing and model training shared on Chameleon Cloud&lt;/li>
&lt;li>A GitHub repository containing the pipeline source code&lt;/li>
&lt;/ul></description></item><item><title>Reproducibility in Data Visualization</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre24/niu/repro-vis/</link><pubDate>Tue, 06 Feb 2024 15:00:00 -0500</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre24/niu/repro-vis/</guid><description>&lt;p>At the heart of evaluating reproducibility is a judgment about whether
two results are indeed
the same. This can be complicated in the context of data visualization due to
rapidly evolving technology and differences in how users perceive the results.
First, due to the rapid evolution of libraries including web technologies,
visualizations created in the past may look different when rendered in the future.
Second, as the goal of data visualization is communicating data to people,
different people may perceive visualizations in a different way.
Thus, when a reproduced visualization does not exactly match the original, judging
whether they are &amp;ldquo;similar enough&amp;rdquo; is complicated by these factors. For example,
changes in a colormap may be deemed minor by a computer but could lead people to different
understandings of the data. The goals of this research are to capture visualizations in a way that
allows their reproducibility to be evaluated and to develop methods to categorize the differences
when a reproduced visualization differs from the original.&lt;/p>
&lt;h3 id="investigate-solutions-for-capturing-visualizations">Investigate Solutions for Capturing Visualizations&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> Reproducibility, Data Visualization&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> Python and/or JavaScript, Data Visualization Tools&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Moderate&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Medium or Large (175 or 350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/david-koop/">David Koop&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>The goal of this project is to investigate, augment, and/or develop solutions to capture
visualizations that appear in formats including websites and Jupyter notebooks.
In &lt;a href="https://github.com/simprov/simprov" target="_blank" rel="noopener">past work&lt;/a>, we implemented methods
to capture thumbnails as users interacted with visualizations. Other solutions
can be used to capture interactive visualizations. We wish to understand
the feasibility of recording such visualizations and their utility in
evaluating reproducibility in the future.&lt;/p>
&lt;h5 id="specific-tasks">Specific tasks:&lt;/h5>
&lt;ul>
&lt;li>Evaluate tools for capturing static visualizations on the web&lt;/li>
&lt;li>Investigate tools for capturing dynamic visualizations on the web&lt;/li>
&lt;li>Investigate how data including code or metadata can be captured with visualizations&lt;/li>
&lt;li>Augment or develop tools to aid in capturing reproducible visualizations&lt;/li>
&lt;/ul>
&lt;h3 id="categorize-differences-in-reproduced-visualizations">Categorize Differences in Reproduced Visualizations&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> Reproducibility, Data Visualization&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> Python and/or JavaScript, Data Visualization Tools&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Moderate/Hard&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Medium or Large (175 or 350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/david-koop/">David Koop&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>The goal of this project is to organize types of differences in reproduced visualizations and create tools to detect them. Publications and computational notebooks record renderings of visualizations.
When they also include the code to reproduce the visualization, we can
regenerate them in order to compare them. Often, the reproduced visualization does
not match the original (see examples in this &lt;a href="https://arxiv.org/abs/2308.06894" target="_blank" rel="noopener">manuscript&lt;/a>).
This project seeks to categorize the types of differences
that can occur in order and start understanding how they impact judgments of reproducibility.&lt;/p>
&lt;h5 id="specific-tasks-1">Specific tasks:&lt;/h5>
&lt;ul>
&lt;li>Evaluate and/or develop tools to compare two visualizations&lt;/li>
&lt;li>Evaluate the utility of artificial intelligence solutions&lt;/li>
&lt;li>Organize and categorize the detected differences&lt;/li>
&lt;li>Develop tools to determine the types or categories of differences present in two visualizations&lt;/li>
&lt;/ul></description></item><item><title>FSA: Benchmarking Fail-Slow Algorithms</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre24/uchicago/failslowalgorithms/</link><pubDate>Tue, 06 Feb 2024 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre24/uchicago/failslowalgorithms/</guid><description>&lt;p>&lt;strong>Project Idea Description&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> Storage systems, machine learning&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> Python, PyTorch, Bash scripting, Linux, Machine Learning modeling&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Hard&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/ruidan-li/">Ruidan Li&lt;/a> (primary contact), &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/kexin-pei/">Kexin Pei&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>In the realm of modern applications, achieving not only low but also predictable response times is a critical requirement. Performance instability, even when it amounts to just a few milliseconds of delay, can result in violations of Service Level Objectives (SLOs). Redundancy at the RAID group level provides a layer of protection; however, the early identification of potential slowdowns or failures is paramount in minimizing their impact on overall system latency.&lt;/p>
&lt;p>Fail-Slow represents a unique type of fault within storage systems, characterized by the system&amp;rsquo;s ability to continue functioning while progressively deteriorating – its performance significantly drops below expected levels. Notably, fail-slow conditions are responsible for a considerable share of latency tails. Detecting fail-slow faults is particularly challenging, as they can be easily masked by the normal fluctuations in performance. Consequently, the identification of fail-slow faults is a critical area of research, demanding meticulous attention.&lt;/p>
&lt;p>Several strategies have been developed to address the fail-slow issue, yet the question of their broad applicability remains. We plan to implement and assess various existing fail-slow detection algorithms, examining their strengths and weaknesses. Our analysis will concentrate on key questions:&lt;/p>
&lt;p>How promptly can the algorithm identify a fail-slow symptom?
What methods does the algorithm employ to accurately distinguish fail-slow incidents, thereby minimizing false negatives?
Through what approach does the algorithm achieve the right sensitivity level to keep false positives in check?&lt;/p>
&lt;p>This evaluation aims to shed light on the effectiveness of current methodologies in detecting fail-slow faults, crucial for enhancing system reliability and performance.&lt;/p>
&lt;p>Building upon our evaluation of several fail-slow detection algorithms, our objective is to harness advanced machine learning (ML) models to develop a novel algorithm. This initiative seeks to address and potentially compensate for the identified weaknesses in existing methodologies. By focusing on the critical aspects of early detection, accurate differentiation, and optimal sensitivity, we aim to create a solution that reduces both false negatives and false positives, thereby enhancing overall system reliability. This approach represents a strategic effort to not only advance the current state of fail-slow detection but also to contribute significantly to the resilience and performance of storage systems.&lt;/p>
&lt;p>&lt;strong>Project Deliverable&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>A Trovi artifact for the existing Fail-Slow detection algorithms on Chameleon Cloud&lt;/li>
&lt;li>A GitHub repository containing the full evaluation result&lt;/li>
&lt;li>A Google Colab notebook for quick replay&lt;/li>
&lt;/ul></description></item><item><title>Open Sensing Platform (OSP)</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre24/ucsc/osp/</link><pubDate>Mon, 05 Feb 2024 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre24/ucsc/osp/</guid><description>&lt;h2 id="open-sensing-platform-i-software-to-enable-large-scale-outdoor-sensor-networks">Open Sensing Platform I: Software to enable large scale outdoor sensor networks&lt;/h2>
&lt;p>
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="Data Visualization Dashboard" srcset="
/project/osre24/ucsc/osp/osp1_huda3c1d46887767e16b865c47973b8288_360491_2d797937cbe25a879de96b44cb5c65b3.webp 400w,
/project/osre24/ucsc/osp/osp1_huda3c1d46887767e16b865c47973b8288_360491_baae6484e015277af7b09e866b6869f5.webp 760w,
/project/osre24/ucsc/osp/osp1_huda3c1d46887767e16b865c47973b8288_360491_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre24/ucsc/osp/osp1_huda3c1d46887767e16b865c47973b8288_360491_2d797937cbe25a879de96b44cb5c65b3.webp"
width="760"
height="759"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> Data Visualization, Backend, Web Development, UI/UX, Analytics&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong>
&lt;ul>
&lt;li>&lt;em>Required:&lt;/em> React, Javascript, Python, SQL, Git&lt;/li>
&lt;li>&lt;em>Nice to have:&lt;/em> Flask, Docker, CI/CD, AWS, Authentication&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Medium&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/colleen-josephson/">Colleen Josephson&lt;/a>, &lt;a href="mailto:jtmadden@ucsc.edu">John Madden&lt;/a>, &lt;a href="mailto:awu70@ucsc.edu">Aaron Wu&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Open Sensing Platform (OSP) is a new initiative expanding from our prior project DirtViz, a data visualization web platform for monitoring microbial fuel cell sensors (see &lt;a href="https://github.com/jlab-sensing/DirtViz" target="_blank" rel="noopener">GitHub&lt;/a>). The mission is to scale up the current platform to support other researchers or citizen scientists in integrating their novel sensing hardware or microbial fuel cell sensors for monitoring and data analysis. Examples of the types of sensors currently deployed are sensors measuring soil moisture, temperature, current, and voltage in outdoor settings. The focus of the software half of the project involves building upon our existing visualization web platform, and adding additional features to support the mission. A live version of the website is available &lt;a href="https://dirtviz.jlab.ucsc.edu/" target="_blank" rel="noopener">here&lt;/a>.&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Deliverables:&lt;/strong>
&lt;ul>
&lt;li>Create a system for remote collaborators/citizen scientists to set up their sensors and upload securely, eg. designing user flow to create sensors&lt;/li>
&lt;li>Craft an intuitive navigation system so that data from deployment sites around the world can be easily viewed, eg. designing experience/system to locate deployment sites.&lt;/li>
&lt;li>Refine our web-based visualization tools to add additional features for users to analyze collected data, eg. lazy loading out-of-range data or caching queried data.&lt;/li>
&lt;li>Document the tool thoroughly for future maintenance&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h2 id="open-sensing-platform-ii-hardware-to-enable-large-scale-outdoor-sensor-networks">Open Sensing Platform II: Hardware to enable large scale outdoor sensor networks&lt;/h2>
&lt;p>
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="Hardware" srcset="
/project/osre24/ucsc/osp/featured_hu6708254effb609c97dc781c926e4aea5_3805876_b844f987d1fd7b63009c6d2a89b9dcf2.webp 400w,
/project/osre24/ucsc/osp/featured_hu6708254effb609c97dc781c926e4aea5_3805876_3199ed5510eaff77a8cf1f93ae26f10d.webp 760w,
/project/osre24/ucsc/osp/featured_hu6708254effb609c97dc781c926e4aea5_3805876_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre24/ucsc/osp/featured_hu6708254effb609c97dc781c926e4aea5_3805876_b844f987d1fd7b63009c6d2a89b9dcf2.webp"
width="760"
height="521"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> Embedded system, wireless communication, low-power remote sensing&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong>
&lt;ul>
&lt;li>&lt;em>Required:&lt;/em> C/C++, Git, Github, Platformio&lt;/li>
&lt;li>&lt;em>Nice to have:&lt;/em> PCB design and debugging experience, STM32 HAL, ESP32 Arduino, protobuf, python, knowledge of standard communication protocols (I2C, SPI, and UART)&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Hard&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/colleen-josephson/">Colleen Josephson&lt;/a>, &lt;a href="mailto:jtmadden@ucsc.edu">John Madden&lt;/a>, &lt;a href="mailto:sgtaylor@ucsc.edu">Stephen Taylor&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>The Open Sensing Platform hardware aims to be a general purpose hardware platform for outdoor sensing (e.g. agriculture, ecological monitoring, etc.). The typical use case involves a sensor deployment in an agricultural field, remotely uploading measurements without interfering with farming operations. The current hardware revision (&lt;a href="https://github.com/jlab-sensing/soil_power_sensor" target="_blank" rel="noopener">Soil Power Sensor&lt;/a>) was originally designed for monitoring power output of microbial fuel cells using high fidelity voltage and current measurement channels, as well as auxiliary sensors such as the SDI-12 &lt;a href="https://metergroup.com/products/teros-12/" target="_blank" rel="noopener">TEROS-12 soil moisture sensor&lt;/a>. The primary activities of this project will involve low-level firmware design and implementation, but may also incorporate hardware design revisions if necessary. We are looking to expand functionality to other external sensors, as well as optimize for power consumption, via significant firmware design activities.&lt;/p>
&lt;p>Long-range, low-power wireless communication is achieved through a LoRa capable STM32 microcontroller with in-lab experiments using an ESP32 microcontroller to enable the simpler WiFi interface. Both wireless interfaces communicate upload measurements to our data visualization dashboard, &lt;strong>Open Sensing Platform I&lt;/strong>. The combined goal across both of these projects is to create a system that enables researchers to test and evaluate novel sensing solutions. We are looking to make the device usable to a wide range of researchers which may not have a background in electronics, so are interested in design activities that enhance user friendliness.&lt;/p>
&lt;p>In total there will be 2-4 people working on the hardware with progress being tracked on GitHub. Broader project planning is tracked through a Jira board. We intend to have weekly meetings to provide updates on current issue progress along with assigning tasks. Please reach out to &lt;a href="mailto:jtmadden@ucsc.edu">John Madden&lt;/a> if there are any questions or specific ideas for the project.&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Deliverables:&lt;/strong> Contribution via commits to the GitHub repository with documentation on completed work. A changelog of contributions to the firmware.&lt;/li>
&lt;/ul></description></item><item><title>OpenMLEC: Open-source MLEC implementation with HDFS on top of ZFS</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre24/ornl/openmlec/</link><pubDate>Mon, 05 Feb 2024 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre24/ornl/openmlec/</guid><description>&lt;p>&lt;strong>Project Idea Description&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> Storage Systems, Erasure Coding&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> C/C++, Java, Bash scripting, Linux, HDFS, ZFS, Erasure Coding&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Hard&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/meng-wang/">Meng Wang&lt;/a> (&lt;a href="mailto:wangm12@uchicago.edu">Main contact person&lt;/a>) and Anjus George&lt;/li>
&lt;/ul>
&lt;p>Multi-Level Erasure Coding (MLEC), which performs erasure coding at both network and local levels, has seen large deployments in practice. Our recent research work has shown that MLEC can provide high durability with higher encoding throughput and less repair network traffic compared to other erasure coding methods. This makes MLEC particularly appealing for large-scale data centers, especially high-performance computing (HPC) systems.&lt;/p>
&lt;p>However, current MLEC systems often rely on straightforward design choices, such as Clustered/Clustered (C/C) chunk placement and the Repair-All (RALL) method for catastrophic local failures. Our recent simulations [1] have revealed the potential benefits of more complex chunk placement strategies like Clustered/Declustered (C/D), Declustered/Clustered (D/C), and Declustered/Declustered (D/D). Additionally, advanced repair methods such as Repair Failed Chunks Only (RFCO), Repair Hybrid (RHYB), and Repair Minimum (RMIN) have shown promise for improving durability and performance according to our simulations. Despite promising simulation results, these optimized design choices have not been implemented in real systems.&lt;/p>
&lt;p>In this project, we propose to develop open-source MLEC implementations in real systems, offering a range of design choices from simple to complex. Our approach leverages ZFS for local-level erasure coding and HDFS for network-level erasure coding, supporting both clustered and declustered chunk placement at each level. The student&amp;rsquo;s responsibilities include setting up HDFS on top of ZFS, configuring various MLEC chunk placements (e.g., C/D, D/C, D/D), and implementing advanced repair methods within HDFS and ZFS. The project will culminate in reproducible experiments to evaluate the performance of MLEC systems under different design choices.&lt;/p>
&lt;p>We will open-source our code and aim to provide valuable insights to the community on optimizing erasure-coded systems. Additionally, we will provide comprehensive documentation of our work and share Trovi artifacts on Chameleon Cloud to facilitate easy reproducibility of our experiments.&lt;/p>
&lt;p>[1] Meng Wang, Jiajun Mao, Rajdeep Rana, John Bent, Serkay Olmez, Anjus George, Garrett Wilson Ransom, Jun Li, and Haryadi S. Gunawi. Design Considerations and Analysis of Multi-Level Erasure Coding in Large- Scale Data Centers. In The International Conference for High Performance Computing, Networking, Storage and Analysis (SC ’23), 2023.&lt;/p>
&lt;p>&lt;strong>Project Deliverable&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>Open-source MLEC implementations with a diverse range of design choices.&lt;/li>
&lt;li>Configuration setup for HDFS on top of ZFS, supporting various MLEC chunk placements.&lt;/li>
&lt;li>Implementation of advanced repair methods within HDFS and ZFS.&lt;/li>
&lt;li>Reproducible experiments to assess the performance of MLEC systems across distinct design choices.&lt;/li>
&lt;li>Comprehensive documentation of the project and the provision of shared Trovi artifacts on Chameleon Cloud for ease of reproducibility.&lt;/li>
&lt;/ul></description></item><item><title>EdgeRep: Reproducing and benchmarking edge analytic systems</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre24/uchicago/edgerep/</link><pubDate>Fri, 02 Feb 2024 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre24/uchicago/edgerep/</guid><description>&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> video analytics, machine learning&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> Python, PyTorch, Bash scripting, Linux, Machine Learning modeling&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Medium&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/yuyang-roy-huang/">Yuyang (Roy) Huang&lt;/a> (contact person), &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/junchen-jiang/">Junchen Jiang&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Project Idea Description&lt;/strong>&lt;/p>
&lt;p>With the flourishing of ideas like smart cities and smart manufacturing, a
massive number of edge devices (e.g., traffic or security cameras,
thermometers, flood sensors, etc.) are deployed and connected to the network.
These devices collect and analyze data across space and time, aiding
stakeholders like city governments and manufacturers in optimizing their plans
and operations. However, the sheer number of edge devices and the large amount
of communication among the devices and central servers raises significant
challenges in how to manage and schedule resources. This includes network
bandwidth between the devices and computing power on both edge devices and bare
metal servers, all to maintain the reliable service capability of running
applications.&lt;/p>
&lt;p>Moreover, given the limited resources available to edge devices, there&amp;rsquo;s an
emerging trend to reduce average compute and/or bandwidth usage. This is
achieved by leveraging the uneven distribution of interesting events with
respect to both time and space in the input data. This, in turn, introduces
further challenges in provisioning and managing the amount of resources
available to edge devices. The resource demands of running applications can
greatly depend on the input data, which is both dynamic and unpredictable.&lt;/p>
&lt;p>Keeping these challenges in mind, the team previously designed and implemented
a dynamic resource manager capable of understanding the applications and making
decisions based on this understanding at runtime. However, such a resource
manager has only been tested with a limited number and types of video analytic
applications. Thus, through the OSRE24 project, we aim to:&lt;/p>
&lt;ul>
&lt;li>Collect a wide range of videos to form a comprehensive video dataset&lt;/li>
&lt;li>Reproduce other state-of-art self-adaptive video analytic applications&lt;/li>
&lt;li>Package the dataset as well as the application to publish them on Chameleon
Trovi site&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Project Deliverable&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>Collect a wide range of videos to form a comprehensive video dataset&lt;/li>
&lt;li>Reproduce other state-of-art self-adaptive video analytic applications&lt;/li>
&lt;li>Package the dataset as well as the application to publish them on Chameleon
Trovi site&lt;/li>
&lt;/ul></description></item><item><title>FEP-Bench: Benchmarks for understanding featuring engineering and preprocessing bottlenecks</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre24/ibm/fep-bench/</link><pubDate>Fri, 02 Feb 2024 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre24/ibm/fep-bench/</guid><description>&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> storage system, scheduling, distributed system, machine learning&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> Python, PyTorch, Bash scripting, Linux, Machine Learning modeling&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Hard&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/yuyang-roy-huang/">Yuyang (Roy) Huang&lt;/a> (contact person), &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/swami-sundararaman/">Swami Sundararaman&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Project Idea Description&lt;/strong>&lt;/p>
&lt;p>In the realm of machine learning (ML), preprocessing of data is a critical yet
often underappreciated phase, consuming approximately 80% of the time in common
ML tasks. This extensive time consumption can be attributed to various
challenges encountered from both data and computation perspectives.&lt;/p>
&lt;p>From the data side, one significant challenge is the slow retrieval of data
from data lakes, which are storage repositories that hold a vast amount of raw
data in its native format. However, the process of extracting this data can be
slow, causing computation cycles to wait for data arrival and leading to delays
in the entire preprocessing phase. Furthermore, the size of the data often
exceeds the memory capacity of standard computing systems. This is a frequent
occurrence in ML, as datasets are typically large and complex. Handling such
large datasets requires sophisticated memory management techniques to ensure
efficient preprocessing without overwhelming the system&amp;rsquo;s memory.&lt;/p>
&lt;p>On the computation side, a naive solution to data operations, especially
aggregation, often leads to inefficiencies. These operations may require
grouping a large chunk of data as a prerequisite before performing any actual
computation. This grouping, without careful configuration and management, can
trigger serious data shuffling, leading to extensive remote data movement when
the data is distributed across various storage systems. Such data movement is
not only time-consuming but also resource-intensive.&lt;/p>
&lt;p>To mitigate these challenges, there is a pressing need to design better
caching, prefetching, and heuristic strategies for data preprocessing. The team
aims to significantly reduce the time and resources required for preprocessing
by optimizing data retrieval and computational processes.&lt;/p>
&lt;p>However, prior to the design and implementation of such a system, a systematic
understanding of the preprocessing workflow is essential. Hence, throughout the
program, the students will need to:&lt;/p>
&lt;ul>
&lt;li>Understand the current system used to preprocess data for ML training, for
example, Hadoop or Spark.&lt;/li>
&lt;li>Collect the common datasets used for different types of ML models.&lt;/li>
&lt;li>Collect the typical operations used for preprocessing these datasets.&lt;/li>
&lt;li>Benchmark the performance in these operations under the existing frameworks
under various experimental settings.&lt;/li>
&lt;li>Package the benchmark such that the team can later use it for reproduction or
evaluation.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Project Deliverable&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>Understand the current system used to preprocess data for ML training, for
example, Hadoop or Spark.&lt;/li>
&lt;li>Collect the common datasets used for different types of ML models.&lt;/li>
&lt;li>Collect the typical operations used for preprocessing these datasets.&lt;/li>
&lt;li>Benchmark the performance in these operations under the existing frameworks
under various experimental settings.&lt;/li>
&lt;li>Package the benchmark such that the team can later use it for reproduction or evaluation.&lt;/li>
&lt;/ul></description></item><item><title>FetchPipe: Data Science Pipeline for ML-based Prefetching</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre24/uchicago/fetchpipe/</link><pubDate>Fri, 02 Feb 2024 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre24/uchicago/fetchpipe/</guid><description>&lt;p>&lt;strong>Project Idea Description&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> Storage systems, machine learning&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> C/C++, Python, PyTorch, Bash scripting, Linux, Machine Learning modeling&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Hard&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/daniar-h.-kurniawan/">Daniar H. Kurniawan&lt;/a> (primary contact), Haryadi Gunawi&lt;/li>
&lt;/ul>
&lt;p>The contemporary landscape of high-performance servers, particularly those designed for data centers and AI/ML training, prominently features solid-state drives (SSDs) and spinning disks (HDDs) as primary storage devices. These components play a crucial role in shaping overall system performance, underscoring the importance of addressing and minimizing Input/Output (I/O) latency. This is particularly crucial given the widespread adoption of hybrid storage systems, where caching and prefetching strategies are instrumental in optimizing storage performance. Caching involves using faster but less dense memory to store frequently accessed data, while prefetching aims to reduce latency by fetching data from slower memory to cache before it is needed. Although both caching and prefetching present valid challenges, our primary emphasis is on the prefetching problem due to the inherent difficulty in predicting future access.&lt;/p>
&lt;p>Traditional prefetchers, dating back 1-2 decades, heavily rely on predefined rules for prefetching based on LBA access sequences, limiting their adaptability to complex scenarios. For instance, the read-ahead prefetcher is confined to prefetching the next data item within a file for faster sequential access. Addressing this limitation, recent advancements include learning-based methods, such as Long Short-Term Memory (LSTM) techniques like DeepPrefetcher and Delta LSTM, which model the LBA delta to cover a broader range of LBAs. However, they are still struggling to achieve high accuracy when the workload pattern changes drastically. Although there are some sophisticated prefetchers capable of learning complex I/O access patterns using Graph structure, they face challenges in their deployment due to the computational cost.&lt;/p>
&lt;p>In this project, our goal is to provide an end-to-end data science pipeline to empower the research on ML-based prefetchers. We believe that this pipeline is crucial for fostering active collaboration between the ML community and storage systems researchers. This collaboration aims to optimize existing ML-based prefetching solutions. Specifically, we will provide the dataset for training/testing and some samples of ML-based models that can further be developed by the community. Furthermore, we will also provide a setup for evaluating the ML model when deployed in storage systems.&lt;/p>
&lt;p>&lt;strong>Project Deliverable&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>Compile I/O traces from various open traces and open systems.&lt;/li>
&lt;li>Develop a pipeline for building ML-based prefetching solutions.&lt;/li>
&lt;li>Build a setup to evaluate the model in a real hybrid storage system.&lt;/li>
&lt;li>Publish a Trovi artifact shared on Chameleon Cloud and a GitHub repository&lt;/li>
&lt;/ul></description></item><item><title>Reproducible Performance Benchmarking for Genomics Workflows on HPC Cluster</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre24/uga/genomicswf/</link><pubDate>Fri, 02 Feb 2024 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre24/uga/genomicswf/</guid><description>&lt;p>&lt;strong>Project Idea description&lt;/strong>&lt;/p>
&lt;p>We aim to characterize the performance of genomic workflows on HPC clusters by conducting two research activities using a broad set of state-of-the-art genomic applications and open-source datasets.&lt;/p>
&lt;p>&lt;strong>Performance Benchmarking and Characterizing Genomic Workflows:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: High Performance Computing (HPC), Data Analysis, Scientific Workflows&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: Linux, Python, Bash Scripting, Data Science Toolkit, Kubernetes, Container Orchestration, Genomics Applications (e.g. BWA, FastQC, Picard, GATK, STAR)&lt;/li>
&lt;li>&lt;strong>Difficulty&lt;/strong>: Medium&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong>: Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentor(s):&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/in-kee-kim/">In Kee Kim&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>In this activity, students will perform comprehensive performance measurements of genomic data processing on HPC clusters using state-of-the-art applications, workflows, and real-world datasets. They will collect and package datasets for I/O, memory, and compute utilization using industry-standard tools and best practices. Measurement will be done using Kubernetes container orchestration on a multi-node cluster to achieve scalability, with either custom-made metrics collection system or integration of existing industry standard tools. (e.g. Prometheus).&lt;/p>
&lt;p>&lt;strong>Quantifying Performance Interference and Assessing Their Impact on Workflow Execution Time:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: Machine Learning, Data Analysis, and Scientific Workflows and Computations&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: Linux, Python, Bash Scripting, Data Science Toolkit, Kubernetes, Container Orchestration&lt;/li>
&lt;li>&lt;strong>Difficulty&lt;/strong>: Difficult&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong>: Medium (175 hours)&lt;/li>
&lt;li>&lt;strong>Mentor(s):&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/in-kee-kim/">In Kee Kim&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>In this activity, students will measure the slowdown of various applications due to resource contention (e.g. CPU and I/O). Students will analyze whether an application is compute-bound, I/O bound, or both, then analyze the correlation between resource utilization and execution time. Following that, students will assess the impact of per-application slowdown to the slowdown of a whole workflow. To the best of our knowledge, this will be the first study which systematically quantifies per-application interference when running genomics workflow on an HPC cluster.&lt;/p>
&lt;p>For both subprojects, all experiments will also be conducted in a reproducible manner (e.g., as a Trovi package or Chameleon VM images), and all code will be open-sourced (e.g., shared on a public Github repo).&lt;/p>
&lt;p>&lt;strong>Project Deliverable&lt;/strong>:&lt;/p>
&lt;p>A Github repository and/or Chameleon VM image containing source code for application executions &amp;amp; metrics collection.
Jupyter notebooks and/or Trovi artifacts containing analysis and mathematical models for application resource utilization &amp;amp; the effects of data quality.&lt;/p></description></item><item><title>LiveHD</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre24/ucsc/livehd/</link><pubDate>Thu, 01 Feb 2024 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre24/ucsc/livehd/</guid><description>&lt;p>The goals is to enable a more productive flow where the ASIC/FPGA designer can
work with multiple hardware description languages like CHISEL, Pyrope, or
Verilog.&lt;/p>
&lt;p>There are several projects, some compiler infrastructure around
&lt;a href="https://github.com/masc-ucsc/livehd" target="_blank" rel="noopener">LiveHD&lt;/a>. Others around how to interface
LLMs to improve chip design productivity.&lt;/p>
&lt;p>There are the following projects available:&lt;/p>
&lt;ul>
&lt;li>Slang with LiveHD&lt;/li>
&lt;li>Hardware Hierarchical Dynamic Structures (hdds)&lt;/li>
&lt;li>HDLEval for LLMs&lt;/li>
&lt;li>C++ Profiler Optimizer with LLMs&lt;/li>
&lt;li>Decompiler from Assembly to C++ with LLMs&lt;/li>
&lt;/ul>
&lt;h2 id="slang-with-livehd">Slang with LiveHD&lt;/h2>
&lt;h3 id="project-idea">Project Idea&lt;/h3>
&lt;p>&lt;a href="https://github.com/MikePopoloski/slang" target="_blank" rel="noopener">slang&lt;/a> is one of the best open source
Verilog front-ends available. &lt;a href="https://github.com/masc-ucsc/livehd" target="_blank" rel="noopener">LiveHD&lt;/a>
uses slang, but only a subset of Verilog is supported. The goal is to add more slang features.&lt;/p>
&lt;h3 id="project-deliverable">Project Deliverable&lt;/h3>
&lt;p>The slang/LiveHD interface creates LiveHD IR (LNAST IR). The plan is to keep
extending the translation to support more features. This is a project that
allows small steps. The goal is to support all Verilog 2001, and potentially
some System Verilog features.&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> SysteVerilog, Compilers&lt;/li>
&lt;li>&lt;strong>Skills Needed:&lt;/strong> Knowledge of Verilog, C++17, some compiler background.&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Medium&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Large&lt;/li>
&lt;li>&lt;strong>Mentor:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/jose-renau/">Jose Renau&lt;/a>, &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/sakshi-garg/">Sakshi Garg&lt;/a>&lt;/li>
&lt;/ul>
&lt;h2 id="hardware-hierarchical-dynamic-structures-hdds">Hardware Hierarchical Dynamic Structures (hdds)&lt;/h2>
&lt;h3 id="project-idea-1">Project Idea&lt;/h3>
&lt;p>&lt;a href="https://github.com/masc-ucsc/hhds" target="_blank" rel="noopener">hdds&lt;/a> aims to build efficient tree and
graph data structures commonly used by hardware compilers. A key difference is
the hierarchical nature, and patterns.&lt;/p>
&lt;h3 id="project-deliverable-1">Project Deliverable&lt;/h3>
&lt;p>There are 2 main components: Graph and Tree.&lt;/p>
&lt;p>For each, there is a hierarchical implementation that allows to connect tree/graphs in a hieararchy.
For example, a graph can call another graph with input and outputs like a Verilog module calls other Verilog modules.&lt;/p>
&lt;p>Both classes should have iterators for traversing in topological sort.&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> Data structures for compilers&lt;/li>
&lt;li>&lt;strong>Skills Needed:&lt;/strong> Data structures, C++17&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Medium&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Large&lt;/li>
&lt;li>&lt;strong>Mentor:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/jose-renau/">Jose Renau&lt;/a>, &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/sakshi-garg/">Sakshi Garg&lt;/a>&lt;/li>
&lt;/ul>
&lt;h2 id="hdleval-for-llms">HDLEval for LLMs&lt;/h2>
&lt;h3 id="project-idea-2">Project Idea&lt;/h3>
&lt;p>LLMs can be used to create new hardware. The goal of this project is to create multiple prompts
so that LLM/compiler designers can have examples to improve their flows.&lt;/p>
&lt;h3 id="project-deliverable-2">Project Deliverable&lt;/h3>
&lt;p>The idea is to create many sample projects where a &amp;ldquo;input&amp;rdquo; creates a Verilog artifact. The specification should not assume Verilog as output because other HDLs like Chisel could be used.&lt;/p>
&lt;p>The goal is to create many sample circuits that are realistic and practical. The description can have&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> Verilog, LLMs&lt;/li>
&lt;li>&lt;strong>Skills Needed:&lt;/strong> Verilog or Chisel&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Low&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Small or medium&lt;/li>
&lt;li>&lt;strong>Mentor:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/jose-renau/">Jose Renau&lt;/a>&lt;/li>
&lt;/ul>
&lt;h2 id="c-profiler-optimizer-with-llms">C++ Profiler Optimizer with LLMs&lt;/h2>
&lt;h3 id="project-idea-3">Project Idea&lt;/h3>
&lt;p>Fine-tune, and/or RAG, a LLM to leverage profiling tools so that it can provide
code optimization recommendations for C++ and possibly Rust code.&lt;/p>
&lt;h3 id="project-deliverable-3">Project Deliverable&lt;/h3>
&lt;p>Create a Python package (poetry?) called aiprof that analyzes the execution of a C++ or Rust program and
provide code change recommendations to improve performance.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">aiprof ./binary
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>aiprof uses perf tools but also other tools like redspy, zerospy, and loadspy
to find problematic code areas and drive the GPT optimizer.&lt;/p>
&lt;p>The plan is to find several examples of transformations to have a database so
that a model like CodeLlama or mixtral can be fine-tuned with code optimization
recomendations.&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> C++, perf tools&lt;/li>
&lt;li>&lt;strong>Skills Needed:&lt;/strong> C++17, Linux performance counters&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Medium&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Large&lt;/li>
&lt;li>&lt;strong>Mentor:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/jose-renau/">Jose Renau&lt;/a>&lt;/li>
&lt;/ul>
&lt;h2 id="decompiler-from-assembly-to-c-with-llms">Decompiler from Assembly to C++ with LLMs&lt;/h2>
&lt;h3 id="project-idea-4">Project Idea&lt;/h3>
&lt;p>There are several decompilers from assembly to C like ghidra and retdec. The idea is to enhance
both outputs to feed an LLM to generate nicer C++ code.&lt;/p>
&lt;h3 id="project-deliverable-4">Project Deliverable&lt;/h3>
&lt;p>ghidra and retdec generate C code out of assembly. The idea is to start with
these tools as baseline, but feed it to a LLM to generate C++ code instead of
plain C.&lt;/p>
&lt;p>Create a Python package (poetry?) called aidecomp that integrates both
decompilers. It allows to target C or C++17.&lt;/p>
&lt;p>To check that the generated code is compatible with the function translated, a
fuzzer could be used. This allows aidecomp to iterate the generation if the
generated code is not equivalent.&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> C++, decompilers&lt;/li>
&lt;li>&lt;strong>Skills Needed:&lt;/strong> C++17&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Medium&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Large&lt;/li>
&lt;li>&lt;strong>Mentor:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/jose-renau/">Jose Renau&lt;/a>&lt;/li>
&lt;/ul></description></item><item><title>Drishti</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre24/lbl/drishti/</link><pubDate>Tue, 30 Jan 2024 10:15:00 -0700</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre24/lbl/drishti/</guid><description>&lt;p>&lt;a href="https://github.com/hpc-io/drishti" target="_blank" rel="noopener">Drishti&lt;/a> is a novel interactive web-based analysis framework to visualize I/O traces, highlight bottlenecks, and help understand the I/O behavior of scientific applications. Drishti aims to fill the gap between the trace collection, analysis, and tuning phases. The framework contains an interactive I/O trace analysis component for end-users to visually inspect their applications&amp;rsquo; I/O behavior, focusing on areas of interest and getting a clear picture of common root causes of I/O performance bottlenecks. Based on the automatic detection of I/O performance bottlenecks, our framework maps numerous common and well-known bottlenecks and their solution recommendations that can be implemented by users.&lt;/p>
&lt;h3 id="drishti--server-side-visualization-service">Drishti / Server-side Visualization Service&lt;/h3>
&lt;p>The proposed work will include investigating and building server-side solutions to support the visualization of larger I/O traces and logs, while integrating with the existing analysis, reports, and recommendations.&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> &lt;code>I/O&lt;/code> &lt;code>HPC&lt;/code> &lt;code>visualization&lt;/code>, &lt;code>performance analysis&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> Python, HTML/CSS, JavaScript&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Moderate&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/jean-luca-bez/">Jean Luca Bez&lt;/a> and &lt;a href="mailto:sbyna@lbl.gov">Suren Byna&lt;/a>&lt;/li>
&lt;/ul>
&lt;h3 id="drishti--visualization-and-analysis-of-ai-based-applications">Drishti / Visualization and Analysis of AI-based Applications&lt;/h3>
&lt;p>Drishti to handle metrics from non-MPI applications, specifically, AI/ML codes and applications. This work entails adapting the existing framework, heuristics, and recommendations to support metrics collected from AI/ML workloads.&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> &lt;code>I/O&lt;/code> &lt;code>HPC&lt;/code> &lt;code>AI&lt;/code> &lt;code>visualization&lt;/code>, &lt;code>performance analysis&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> Python, AI, performance profiling&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Moderate&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/jean-luca-bez/">Jean Luca Bez&lt;/a> and &lt;a href="mailto:sbyna@lbl.gov">Suren Byna&lt;/a>&lt;/li>
&lt;/ul></description></item><item><title>h5bench</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre24/lbl/h5bench/</link><pubDate>Tue, 30 Jan 2024 10:15:00 -0700</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre24/lbl/h5bench/</guid><description>&lt;p>&lt;a href="https://github.com/hpc-io/h5bench" target="_blank" rel="noopener">h5bench&lt;/a> is a suite of parallel I/O benchmarks or kernels representing I/O patterns that are commonly used in HDF5 applications on high performance computing systems. h5bench measures I/O performance from various aspects, including the I/O overhead, and observed I/O rate.&lt;/p>
&lt;p>Parallel I/O is a critical technique for moving data between compute and storage subsystems of supercomputers. With massive amounts of data produced or consumed by compute nodes, high-performant parallel I/O is essential. I/O benchmarks play an important role in this process; however, there is a scarcity of I/O benchmarks representative of current workloads on HPC systems. Toward creating representative I/O kernels from real-world applications, we have created h5bench, a set of I/O kernels that exercise HDF5 I/O on parallel file systems in numerous dimensions. Our focus on HDF5 is due to the parallel I/O library&amp;rsquo;s heavy usage in various scientific applications running on supercomputing systems. The various tests benchmarked in the h5bench suite include I/O operations (read and write), data locality (arrays of basic data types and arrays of structures), array dimensionality (1D arrays, 2D meshes, 3D cubes), I/O modes (synchronous and asynchronous). h5bench measurements can be used to identify performance bottlenecks and their root causes and evaluate I/O optimizations. As the I/O patterns of h5bench are diverse and capture the I/O behaviors of various HPC applications, this study will be helpful to the broader supercomputing and I/O community.&lt;/p>
&lt;h3 id="h5bench--reporting-and-enhancing">h5bench / Reporting and Enhancing&lt;/h3>
&lt;p>The proposed work will include standardizing and enhancing the reports generated by the suite, and integrate additional I/O kernels (e.g., HACC-IO).&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> &lt;code>I/O&lt;/code> &lt;code>HPC&lt;/code> &lt;code>benchmarking&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> Python, C/C++, good communicator&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Moderate&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/jean-luca-bez/">Jean Luca Bez&lt;/a> and &lt;a href="mailto:sbyna@lbl.gov">Suren Byna&lt;/a>&lt;/li>
&lt;/ul>
&lt;h3 id="h5bench--compression">h5bench / Compression&lt;/h3>
&lt;p>The proposed work will focus on including compression capabilities into the h5bench core access patterns through HDF5 filters.&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> &lt;code>I/O&lt;/code> &lt;code>HPC&lt;/code> &lt;code>benchmarking&lt;/code>, &lt;code>compression&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> C/C++, Python, HDF5&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Moderate&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/jean-luca-bez/">Jean Luca Bez&lt;/a> and &lt;a href="mailto:sbyna@lbl.gov">Suren Byna&lt;/a>&lt;/li>
&lt;/ul></description></item><item><title>StatWrap</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre24/northwestern/statwrap/</link><pubDate>Wed, 24 Jan 2024 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre24/northwestern/statwrap/</guid><description>&lt;p>&lt;a href="https://sites.northwestern.edu/statwrap/" target="_blank" rel="noopener">StatWrap&lt;/a> is a free and open-source assistive, non-invasive discovery and inventory tool to document research projects. It inventories project assets (e.g., code files, data files, manuscripts, documentation) and organizes information without additional input from the user. It also provides structure for users to add searchable and filterable notes connected to files to help communicate metadata about intent and analysis steps.&lt;/p>
&lt;p>At its core, StatWrap helps investigators identify and track changes in a research project as it evolves - which may affect reproducibility. For example: (1) people on the project can change over time, so processes may not be consistently executed due to transitions in employment; (2) data changes over time, due to accruing additional cases, adding new variables, or correcting mistakes in existing data; (3) software (e.g. used for data preparation and statistical analysis) evolves as it is edited, improved, and optimized; and (4) software can break or produce different results due to changes &amp;lsquo;under the hood&amp;rsquo; such as updates to statistical packages, compilers, or interpreters. StatWrap passively and actively documents these changes to support reproducibility.&lt;/p>
&lt;p>Additional information:&lt;/p>
&lt;ul>
&lt;li>&lt;a href="https://sites.northwestern.edu/statwrap/" target="_blank" rel="noopener">StatWrap home&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://github.com/stattag/statwrap" target="_blank" rel="noopener">StatWrap code (GitHub)&lt;/a>&lt;/li>
&lt;/ul>
&lt;h3 id="reproducibility-checklists">Reproducibility Checklists&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: &lt;code>reproducibility&lt;/code>, &lt;code>user interface&lt;/code>, &lt;code>checklists&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: JavaScript, React&lt;/li>
&lt;li>&lt;strong>Difficulty&lt;/strong>: Medium&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong>: Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentor&lt;/strong>: &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/luke-rasmussen/">Luke Rasmussen&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>This goal of this project is to develop support within StatWrap to generate customizable reproducibility checklists. The developer will use the metadata and user input collected by StatWrap to automatically generate checklists. This functionality will allow investigators to automatically generate a document indicating what practices they&amp;rsquo;ve followed to support reproducibility. Part of the project will involve surveying proposed reproducibility checklists and considering what to implement in StatWrap. This work will take a systematic approach to documenting reproducibility, much like PRISMA checklists for systematic reviews or CONSORT checklists for clinical trials.&lt;/p>
&lt;p>The specific tasks of the project include:&lt;/p>
&lt;ul>
&lt;li>Identify candidate reproducibility checklists to use as guides&lt;/li>
&lt;li>Create the data structure for configuring reproducibility checklists&lt;/li>
&lt;li>Display the reproducibility checklist in the user interface&lt;/li>
&lt;li>Store responses and comments to the checklist as provided by the user&lt;/li>
&lt;li>Generate a reproducibility checklist report from StatWrap&lt;/li>
&lt;/ul></description></item><item><title>OpenROAD - An Open-Source, Autonomous RTL-GDSII Flow for Chip Design</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre24/openroad/openroad/</link><pubDate>Mon, 22 Jan 2024 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre24/openroad/openroad/</guid><description>&lt;p>The &lt;a href="https://theopenroadproject.org" target="_blank" rel="noopener">OpenROAD&lt;/a> project is a non-profit project, originally funded by DARPA with the aim of creating open-source EDA tools; an Autonomous flow from RTL-GDSII that completes &amp;lt; 24 hrs, to lower cost and boost innovation in IC design. This project is now supported by &lt;a href="precisioninno.com">Precision Innovations&lt;/a>.&lt;/p>
&lt;p>OpenROAD massively scales and supports EWD (Education and Workforce Development) and supports a broad ecosystem making it a vital tool that supports a rapidly growing Semiconductor Industry.&lt;/p>
&lt;p>OpenROAD is the fastest onramp to gain knowledge, skills and create pathways for great career opportunities in chip design. You will develop important software and hardware design skills by contributing to these interesting projects. You will also have the opportunity to work with mentors from the OpenROAD project and other industry experts.&lt;/p>
&lt;p>We welcome a diverse community of designers, researchers, enthusiasts, software engineers and entrepreneurs to use and contribute to OpenROAD and make a far-reaching impact in the rapidly growing, global Semiconductor Industry.&lt;/p>
&lt;h3 id="create-openroad-tutorials-and-videos">Create OpenROAD Tutorials and Videos&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: &lt;code>Documentation&lt;/code>, &lt;code>Tutorials&lt;/code>, &lt;code>Videos&lt;/code>, &lt;code>VLSI design basics&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: Video/audio recording and editing, training and education&lt;/li>
&lt;li>&lt;strong>Difficulty&lt;/strong>: Medium&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong>: Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentor&lt;/strong>: &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/indira-iyer/">Indira Iyer&lt;/a>, &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/vitor-bandeira/">Vitor Bandeira&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Create short videos for training and course curriculum highlighting key features and flows in &lt;a href="https://github.com/The-OpenROAD-Project/OpenROAD-flow-scripts" target="_blank" rel="noopener">OpenROAD-flow-scripts&lt;/a>.&lt;/p>
&lt;h3 id="improve-the-openroad-autotuner-flow-and-documentation">Improve the OpenROAD AutoTuner Flow and documentation&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: &lt;code>OpenROAD-flow-scripts&lt;/code>, &lt;code>AutoTuner&lt;/code>, &lt;code>Design Exploration&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: Knowledge of ML for hyperparameter tuning, Cloud-based computation, Basic VLSI design and tools knowledge, python, C/C++&lt;/li>
&lt;li>&lt;strong>Difficulty&lt;/strong>: Medium&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong>: Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentor&lt;/strong>: &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/vitor-bandeira/">Vitor Bandeira&lt;/a>, &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/indira-iyer/">Indira Iyer&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Test, analyze and enhance the &lt;a href="https://openroad-flow-scripts.readthedocs.io/en/latest/user/InstructionsForAutoTuner.html" target="_blank" rel="noopener">AutoTuner&lt;/a> to improve usability, documentation and QoR. The Autotuner is an important tool in the OpenROAD flow - &lt;a href="https://github.com/The-OpenROAD-Project/OpenROAD-flow-scripts" target="_blank" rel="noopener">OpenROAD-flow-scripts&lt;/a> for Chip design exploration that significantly reduces design time. You will use state-of-the-art ML tools to test the current tool exhaustively for good PPA (performance, power, area) results. You will also update existing documentation to reflect any changes to the tool and flow.&lt;/p>
&lt;h3 id="implement-a-memory-compiler-in-the-openroad-flow">Implement a memory compiler in the OpenROAD Flow&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: &lt;code>OpenROAD-flow-scripts&lt;/code>, &lt;code>Memory Compiler&lt;/code>,&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: Basic VLSI design and tools knowledge, python, tcl, C/C++, memory design a plus&lt;/li>
&lt;li>&lt;strong>Difficulty&lt;/strong>: Medium&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong>: Medium (175 hours)&lt;/li>
&lt;li>&lt;strong>Mentor&lt;/strong>: &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/matt-liberty/">Matt Liberty&lt;/a>, &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/austin-rovinski/">Austin Rovinski&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Implement a memory compiler as part of the OpenROAD flow to improve the placement and layout efficiency of large, memory-intensive designs. You will start with an existing code base to develop this feature: &lt;a href="https://github.com/The-OpenROAD-Project-staging/OpenROAD/tree/dffram" target="_blank" rel="noopener">https://github.com/The-OpenROAD-Project-staging/OpenROAD/tree/dffram&lt;/a>
This is another option: &lt;a href="https://github.com/AUCOHL/DFFRAM" target="_blank" rel="noopener">https://github.com/AUCOHL/DFFRAM&lt;/a>
Enhance code to support DFFRAM support for the OpenROAD native flow, &lt;a href="https://github.com/The-OpenROAD-Project/OpenROAD-flow-scripts" target="_blank" rel="noopener">OpenROAD-flow-scripts&lt;/a>.&lt;/p>
&lt;h3 id="integrate-a-tcl-and-python-linter">Integrate a tcl and python linter&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: &lt;code>Linting&lt;/code>, &lt;code>Workflow&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: tcl, python, linting&lt;/li>
&lt;li>&lt;strong>Difficulty&lt;/strong>: Easy&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong>: Small (90 hours)&lt;/li>
&lt;li>&lt;strong>Mentor&lt;/strong>: &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/vitor-bandeira/">Vitor Bandeira&lt;/a>, &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/austin-rovinski/">Austin Rovinski&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Integrate a tcl and python linter for tools in OpenROAD and &lt;a href="https://github.com/The-OpenROAD-Project/OpenROAD-flow-scripts" target="_blank" rel="noopener">OpenROAD-flow-scripts&lt;/a> to enforce error checking, style and best practices.&lt;/p>
&lt;h3 id="llm-assistant-for-openroad---create-model-architecture-and-prototype">LLM assistant for OpenROAD - Create Model Architecture and Prototype&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: &lt;code>Large Language Model&lt;/code>, &lt;code>Machine Learning&lt;/code>, &lt;code>Model Architecture&lt;/code>, &lt;code>Model Deployment&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: large language model engineering, prompt engineering, fine-tuning&lt;/li>
&lt;li>&lt;strong>Difficulty&lt;/strong>: Medium&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong>: Medium (175 hours)&lt;/li>
&lt;li>&lt;strong>Mentor&lt;/strong>: &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/indira-iyer/">Indira Iyer&lt;/a>, &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/jack-luar/">Jack Luar&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>This project involves the creation of a conversational assistant designed around &lt;a href="https://github.com/The-OpenROAD-Project/OpenROAD" target="_blank" rel="noopener">OpenROAD&lt;/a> to answer user queries. You will be working in tandem with members of the OpenROAD team and other researchers to deliver a final deployable prototype. You will focus on the design and implementation of modular LLM architectures. You will be experimenting through different architectures and justifying which approach works the best on our domain-specific data. Open to proposals from all levels of ML practitioners.&lt;/p>
&lt;h3 id="llm-assistant-for-openroad---data-engineering-and-testing">LLM assistant for OpenROAD - Data Engineering and testing&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: &lt;code>Large Language Model&lt;/code>, &lt;code>Machine Learning&lt;/code>, &lt;code>Data Engineering&lt;/code>, &lt;code>Model Deployment&lt;/code>, &lt;code>Testing&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: large language model engineering, prompt engineering, fine-tuning&lt;/li>
&lt;li>&lt;strong>Difficulty&lt;/strong>: Medium&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong>: Medium (175 hours)&lt;/li>
&lt;li>&lt;strong>Mentor&lt;/strong>: &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/indira-iyer/">Indira Iyer&lt;/a>, &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/jack-luar/">Jack Luar&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>This project involves the creation of a conversational assistant designed around &lt;a href="https://github.com/The-OpenROAD-Project/OpenROAD" target="_blank" rel="noopener">OpenROAD&lt;/a> to answer user queries. You will be working in tandem with members of the OpenROAD team and other researchers to deliver a final deployable prototype. This project will focus on the data engineering portion of the project. This may include: training pipelines specifically tailored for fine-tuning LLM models, data annotation, preprocessing and augmentation. Open to proposals from all levels of ML practitioners.&lt;/p>
&lt;h3 id="create-unit-tests-for-openroad-tools">Create Unit tests for OpenROAD tools&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: &lt;code>OpenROAD-flow-scripts&lt;/code>, &lt;code>unit testing&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: Basic VLSI design and tools knowledge, python, tcl, C/C++, Github&lt;/li>
&lt;li>&lt;strong>Difficulty&lt;/strong>: Medium&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong>: Medium ( 175 hours)&lt;/li>
&lt;li>&lt;strong>Mentor&lt;/strong>: &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/vitor-bandeira/">Vitor Bandeira&lt;/a>, &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/indira-iyer/">Indira Iyer&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>You will build unit tests to test specific features of the OpenROAD tool which will become part of the regression test. Here is an example of a test for UPF support: &lt;a href="https://github.com/The-OpenROAD-Project/OpenROAD/blob/master/test/upf/mpd_aes.upf" target="_blank" rel="noopener">https://github.com/The-OpenROAD-Project/OpenROAD/blob/master/test/upf/mpd_aes.upf&lt;/a>.
This is a great way to learn VLSI flow basics and the art of testing them for practical applications.&lt;/p></description></item><item><title>StatTag: Connecting statistical software to Microsoft Word</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre24/northwestern/stattag/</link><pubDate>Mon, 22 Jan 2024 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre24/northwestern/stattag/</guid><description>&lt;p>StatTag is a free, &lt;a href="https://github.com/stattag" target="_blank" rel="noopener">open-source&lt;/a> software plug-in for conducting reproducible research. It facilitates the creation of dynamic documents using Microsoft Word documents and statistical software, such as Stata, SAS, R, and Python. Users can use StatTag to embed statistical output (estimates, tables and figures) into a Word document and then with one click individually or collectively update output with a call to the statistical program.&lt;/p>
&lt;p>What makes StatTag different from other tools for creating dynamic documents is that it allows for statistical code to be edited directly from Microsoft Word. Using StatTag means that modifications to a dataset or analysis no longer require transcribing or re-copying results into a manuscript or table.&lt;/p>
&lt;p>StatTag works by interpreting specially formatted comments (&amp;ldquo;tags&amp;rdquo;) within a code file. StatTag then reads the code file, executes the code through the corresponding language interpreter, formats the results, and inserts them into the Word document as a field.&lt;/p>
&lt;p>There are versions of StatTag for both Microsoft Windows and macOS. Proposed projects here are specific to the Microsoft Windows version, which is developed in the C# programming language.&lt;/p>
&lt;p>&lt;strong>Additional Information:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;a href="https://sites.northwestern.edu/stattag/" target="_blank" rel="noopener">StatTag homepage&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://github.com/stattag" target="_blank" rel="noopener">StatTag on GitHub&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://pubmed.ncbi.nlm.nih.gov/33215069/" target="_blank" rel="noopener">Welty et al., &amp;ldquo;Facilitating reproducible research through direct connection of data analysis with manuscript preparation: StatTag for connecting statistical software to Microsoft Word&amp;rdquo;&lt;/a>&lt;/li>
&lt;/ul>
&lt;h3 id="support-additional-programming-languages">Support Additional Programming Languages&lt;/h3>
&lt;ul>
&lt;li>Topics: &lt;code>reproducibility&lt;/code>, &lt;code>statistics&lt;/code>&lt;/li>
&lt;li>Skills: C# and one of: MATLAB, Octave, SQL, Julia&lt;/li>
&lt;li>Difficulty: Medium&lt;/li>
&lt;li>Size: Medium or large (175 or 350 hours)&lt;/li>
&lt;li>Mentor: &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/luke-rasmussen/">Luke Rasmussen&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Following the same structure used for other language support in StatTag, develop support for a new programming language (suggested languages are provided, but applicants can propose others). This will include:&lt;/p>
&lt;ul>
&lt;li>Creating a Parser class to support StatTag-specific interpretation of results (e.g., identifying a line of code that is writing to a CSV file, then loading that CSV file)&lt;/li>
&lt;li>Creating an Automation class that manages communication with the supported programming language&amp;rsquo;s interpreter. Python support uses a Jupyter kernel, and both SAS and Stata support invoke DLLs directly.&lt;/li>
&lt;li>Integrating the language into the UI (e.g., allowing it to be a valid code file, adding the icon for the code file to the UI)&lt;/li>
&lt;li>Additional setup/configuration as needed (e.g., SQL support would require secure configuration for connecting to the databse server).&lt;/li>
&lt;/ul>
&lt;p>Develop unit tests to demonstrate code is functioning. Create test scripts in the implemented language to exercise and demonstrate end-to-end execution.&lt;/p>
&lt;h3 id="process-tags-in-jupyter-notebooks">Process Tags in Jupyter Notebooks&lt;/h3>
&lt;ul>
&lt;li>Topics: &lt;code>reproducibility&lt;/code>, &lt;code>jupyter&lt;/code>&lt;/li>
&lt;li>Skills: C#, Jupyter Notebooks, Python&lt;/li>
&lt;li>Difficulty: Medium&lt;/li>
&lt;li>Size: Medium (175 hours)&lt;/li>
&lt;li>Mentor: &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/luke-rasmussen/">Luke Rasmussen&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>StatTag uses&lt;/p>
&lt;p>StatTag currently has support for Python, and utilizes the Jupyter kernel to interact with Python. However, we currently do not fully support processing StatTag &amp;rsquo;tags&amp;rsquo; in a Jupyter notebook.&lt;/p>
&lt;p>Following the same structure used for RMarkdown integration in StatTag, develop support for Jupyter Notebooks in StatTag. StatTag should be able to:&lt;/p>
&lt;ul>
&lt;li>Take as input one or more Jupyter Notebooks&lt;/li>
&lt;li>Confirm that the Jupyter Notebook uses Python&lt;/li>
&lt;li>Identify StatTag formatted tags within the notebook&lt;/li>
&lt;li>Pass relevant code to the Python processor already implemented in StatTag&lt;/li>
&lt;/ul>
&lt;p>In addition, develop unit tests to demonstrate code is functioning as intended. Create test Jupyter Notebooks to exercise and demonstrate end-to-end execution.&lt;/p></description></item><item><title>AIIO / Graph Neural Network</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre24/lbl/aiio/</link><pubDate>Wed, 17 Jan 2024 10:15:56 -0700</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre24/lbl/aiio/</guid><description>&lt;p>[AIIO] (&lt;a href="https://github.com/hpc-io/aiio" target="_blank" rel="noopener">https://github.com/hpc-io/aiio&lt;/a>) revolutionizes the way for users to automatically tune the I/O performance of applications on HPC systems. It currently works on linear regression models but has more opportunities to work on heterogeneous data, such as programming info. This requires extending the linear regression model to more complex models, such as heterogeneous graph neural networks. The proposed work will include developing the graph neural work-based model to predict the I/O performance and interpretation.&lt;/p>
&lt;h3 id="aiio--graph-neural-network">AIIO / Graph Neural Network&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: AIIO/Graph Neural Network`&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: Python, Github, Machine Learning&lt;/li>
&lt;li>&lt;strong>Difficulty&lt;/strong>: Difficult&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong>: Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentor&lt;/strong>: &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/bin-dong/">Bin Dong&lt;/a>, Suren Byna&lt;/li>
&lt;/ul>
&lt;p>The Specific tasks of the project include:&lt;/p>
&lt;ul>
&lt;li>Develop the data pre-processing pipeline to convert I/O logs into formats which are required by the Graph Neural Network&lt;/li>
&lt;li>Build and test the Graph Neural Network to model the I/O performance for HPC applications.&lt;/li>
&lt;li>Test and evaluate the accuracy of the Graph Neural Network with test cases from AIIO&lt;/li>
&lt;/ul></description></item><item><title>FasTensor / Stream Processing</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre24/lbl/fastensor/</link><pubDate>Wed, 17 Jan 2024 10:15:56 -0700</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre24/lbl/fastensor/</guid><description>&lt;p>[FasTensor] (&lt;a href="https://github.com/BinDong314/FasTensor" target="_blank" rel="noopener">https://github.com/BinDong314/FasTensor&lt;/a>) is a generic tensor processing engine with scalability from single nodes to thousands of nodes on HPC. FasTensor supports applications from traditional SQL query to complex DFT solver in scientific applications. It has a 1000X performance advantage over MapReduce and Spark in supporting generic data processing functions on tensor structure. In this project, we propose to expand FasTensor with streaming functionality to support online data processing. Specifically, participants of this project will develop a stream endpoint for retrieving live data output from applications, such as DAS. The stream endpoint performs the function to maintain the pointer of data, which could be a n-dimensional subset of a tensor.&lt;/p>
&lt;h3 id="fastensor--stream-processing">FasTensor / Stream Processing&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: &lt;code>FasTensor/Streaming Processing&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: C++, github&lt;/li>
&lt;li>&lt;strong>Difficulty&lt;/strong>: Difficult&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong>: Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentor&lt;/strong>: &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/bin-dong/">Bin Dong&lt;/a>, &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/john-wu/">John Wu&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>The Specific tasks of the project include:&lt;/p>
&lt;ul>
&lt;li>Building a mock workflow based on our DAS application (&lt;a href="https://github.com/BinDong314/DASSA" target="_blank" rel="noopener">https://github.com/BinDong314/DASSA&lt;/a>) to test stream processing. The mock workflow comprises a data producer, which generates DAS data, and a data consumer, which processes the data.&lt;/li>
&lt;li>Developing a Stream Endpoint (e.g., I/O driver) to iteratively read dynamically increasing data from a directory. The stream endpoint essentially includes open, read, and write functions, and a pointer to remember current file pointer.&lt;/li>
&lt;li>Integrating the Stream Endpoint into the FasTensor library.&lt;/li>
&lt;li>Evaluating the performance of the mock workflow with the new Stream Endpoint.&lt;/li>
&lt;li>Documenting the execution mechanism.&lt;/li>
&lt;/ul></description></item><item><title>SLICES/pos: Reproducible Experiment Workflows</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre24/tum/slices/</link><pubDate>Sat, 06 Jan 2024 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre24/tum/slices/</guid><description>&lt;p>&lt;a href="https://www.slices-ri.eu/" target="_blank" rel="noopener">SLICES-RI&lt;/a> is a european research initiative aiming to create a digital research infrastructure providing an experimental platform for the upcoming decades.
One of the main goals of this initiative is the creation of fully reproducible experiments.
The SLICES research infrastructure will consist of different experiment sites focusing on different research domains such as AI experiments, Cloud and HPC-driven experiments, or investigations on wireless networks.&lt;/p>
&lt;p>To achieve reproducibility, the research group on network architectures and services of the Technical University of Munich develops the &lt;a href="https://dl.acm.org/doi/10.1145/3485983.3494841" target="_blank" rel="noopener">SLICES plain orchestrating service (SLICES/pos)&lt;/a>.
This framework supports a fully automated structured experiment workflow.
The structure of this workflow acts as a template for the design of experiments.
Users that adhere to this template will create inherently reproducible experiments, a feature we call reproducible-by-design.&lt;/p>
&lt;p>The SLICES/pos framework currently exists in two versions:
(1) A fully-managed pos deployment, that uses the SLICES/pos framework to manage the entire testbed and (2) a hosted SLICES/pos deployment.
The hosted SLICES/pos deployment is a temporary deployment that runs inside existing testbeds such as &lt;a href="https://chameleoncloud.org/" target="_blank" rel="noopener">Chameleon&lt;/a> or &lt;a href="https://cloudlab.us/" target="_blank" rel="noopener">CloudLab&lt;/a>.&lt;/p>
&lt;p>&lt;strong>Additional Information:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;a href="https://dl.acm.org/doi/10.1145/3485983.3494841" target="_blank" rel="noopener">plain orchestrating service&lt;/a>&lt;/li>
&lt;/ul>
&lt;h3 id="support-additional-programming-languages">Support Additional Programming Languages&lt;/h3>
&lt;ul>
&lt;li>Topics: &lt;code>reproducibility&lt;/code>, &lt;code>statistics&lt;/code>&lt;/li>
&lt;li>Skills: Python&lt;/li>
&lt;li>Difficulty: Medium&lt;/li>
&lt;li>Size: Large (350 hours)&lt;/li>
&lt;li>Mentor: &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/sebastian-gallenmuller/">Sebastian Gallenmüller&lt;/a>, &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/georg-carle/">Georg Carle&lt;/a>, and &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/kate-keahey/">Kate Keahey&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Design a set of basic examples that demonstrate the usage of pos that can be executed on the SLICES/pos testbed in Munich and the Chameleon testbed.
This set of basic examples acts as a demonstration of pos&amp;rsquo; capabilities and as a tutorial for new users.
Based on these introductory examples, a more complex experiment shall be designed and executed, demonstrating the portability of the experiments between testbeds.
This experiment involves the entire experiment workflow consisting of the setup and configuration of the testbed infrastructure, the collection of measurement results, and finally, their evaluation and publication.
Multiple results of this experiment shall be created on different testbeds and hardware configurations.
The results of the experiments will differ depending on the different hardware platforms on which the experiment was executed.
These results shall be evaluated and analyzed to find a common connection between the different result sets of the experiments.&lt;/p>
&lt;ul>
&lt;li>Create introductory examples demonstrating the usage of pos&lt;/li>
&lt;li>Design and create a portable complex network experiment based on SLICES/pos&lt;/li>
&lt;li>Execute the experiment on different testbeds (Chameleon, SLICES/pos testbed)&lt;/li>
&lt;li>Analysis of reproduced experiment&lt;/li>
&lt;li>Automated analysis of experimental results&lt;/li>
&lt;li>Deduction of a model describing the fundamental connections between different experiment executions&lt;/li>
&lt;/ul></description></item><item><title>Static Python Perf: Measuring the Cost of Sound Gradual Types</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre24/uutah/static-python-perf/</link><pubDate>Sat, 06 Jan 2024 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre24/uutah/static-python-perf/</guid><description>&lt;p>Gradual typing is a solution to the longstanding tension between typed and
untyped languages: let programmers write code in any flexible language (such
as Python), equip the language with a suitable type system that can describe
invariants in part of a program, and use run-time checks to ensure soundness.&lt;/p>
&lt;p>For now, though, the cost of run-time checks can be enormous.
Order-of-magnitude slowdowns are common. This high cost is a main reason why
TypeScript is unsound by design &amp;mdash; its types are not trustworthy in order
to avoid run-time costs.&lt;/p>
&lt;p>Recently, a team at Meta built a gradually-typed variant of Python called
(&lt;em>drumroll&lt;/em>) Static Python. They report an incredible 4% increase in CPU
efficiency at Instagram thanks to the sound types in Static Python. This
kind of speedup is unprecedented.&lt;/p>
&lt;p>Other languages may want to follow the Static Python approach to gradual types,
but there are big reasons to doubt the Instagram numbers:&lt;/p>
&lt;ul>
&lt;li>the experiment code is closed source, and&lt;/li>
&lt;li>the experiment itself is not easily reproducible (even for Instagram!).&lt;/li>
&lt;/ul>
&lt;p>Static Python needs a rigorous, reproducible performance evaluation to test
whether it is indeed a fundamental advance for gradual typing.&lt;/p>
&lt;p>Related Work:&lt;/p>
&lt;ul>
&lt;li>Gradual Soundness: Lessons from Static Python
&lt;a href="https://programming-journal.org/2023/7/2/" target="_blank" rel="noopener">https://programming-journal.org/2023/7/2/&lt;/a>&lt;/li>
&lt;li>Producing Wrong Data Without Doing Anything Obviously Wrong!
&lt;a href="https://users.cs.northwestern.edu/~robby/courses/322-2013-spring/mytkowicz-wrong-data.pdf" target="_blank" rel="noopener">https://users.cs.northwestern.edu/~robby/courses/322-2013-spring/mytkowicz-wrong-data.pdf&lt;/a>&lt;/li>
&lt;li>On the Cost of Type-Tag Soundness
&lt;a href="https://users.cs.utah.edu/~blg/resources/pdf/gm-pepm-2018.pdf" target="_blank" rel="noopener">https://users.cs.utah.edu/~blg/resources/pdf/gm-pepm-2018.pdf&lt;/a>&lt;/li>
&lt;/ul>
&lt;h3 id="design-and-run-an-experiment">Design and Run an Experiment&lt;/h3>
&lt;ul>
&lt;li>Topics: &lt;code>performance&lt;/code>, &lt;code>cluster computing&lt;/code>, &lt;code>statistics&lt;/code>&lt;/li>
&lt;li>Skills: Python AST parsing, program generation, scripting, measuring performance&lt;/li>
&lt;li>Difficulty: Medium&lt;/li>
&lt;li>Size: Medium (175 hours)&lt;/li>
&lt;li>Mentor: &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/ben-greenman/">Ben Greenman&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Design an experiment that covers the space of gradually-typed Static Python programs
in a fair way. Since every variable in a program can have up to 3 different types,
there are easily 3^20 possibilities in small programs &amp;mdash; far too many to measure
exhaustively.&lt;/p>
&lt;p>Run the experiment on an existing set of benchmarks using a cluster such as CloudLab.
Manage the cluster machines across potentially dozens of reservations and combine
the results into one comprehensive view of Static Python performance.&lt;/p>
&lt;h3 id="derive-benchmarks-from-python-applications">Derive Benchmarks from Python Applications&lt;/h3>
&lt;ul>
&lt;li>Topics: &lt;code>types&lt;/code>, &lt;code>optimization&lt;/code>, &lt;code>benchmark design&lt;/code>&lt;/li>
&lt;li>Skills: Python&lt;/li>
&lt;li>Difficulty: Medium&lt;/li>
&lt;li>Size: Small to Large&lt;/li>
&lt;li>Mentor: &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/ben-greenman/">Ben Greenman&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Build or find realistic Python applications, equip them with rich types,
and modify them to run a meaningful performance benchmark. Running a benchmark
should produce timing information, and the timing should not be significantly
influenced by random variables, I/O actions, or system events.&lt;/p></description></item><item><title>PolyPhy</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre24/ucsc/polyphy/</link><pubDate>Mon, 01 Jan 2024 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre24/ucsc/polyphy/</guid><description>&lt;p>&lt;a href="https://github.com/PolyPhyHub/PolyPhy" target="_blank" rel="noopener">PolyPhy&lt;/a> is a GPU oriented agent-based system for reconstructing and visualizing &lt;em>optimal transport networks&lt;/em> defined over sparse data. Rooted in astronomy and inspired by nature, we have used an early prototype called &lt;a href="https://github.com/CreativeCodingLab/Polyphorm" target="_blank" rel="noopener">Polyphorm&lt;/a> to reconstruct the &lt;a href="https://youtu.be/5ILwq5OFuwY" target="_blank" rel="noopener">Cosmic web&lt;/a> structure, but also to discover network-like patterns in natural language data. You can see an instructive overview of PolyPhy in our &lt;a href="https://elek.pub/workshop_cross2022.html" target="_blank" rel="noopener">workshop&lt;/a> and more details about our research &lt;a href="https://elek.pub/projects/Rhizome-Cosmology" target="_blank" rel="noopener">here&lt;/a>.&lt;/p>
&lt;p>Under the hood, PolyPhy uses a richer 3D scalar field representation of the reconstructed network, instead of a typical discrete representation like a graph or a mesh. The ultimate purpose of PolyPhy is to become a toolkit for a range of specialists across different disciplines: astronomers, neuroscientists, data scientists and even artists and designers. PolyPhy aspires to be a tool for discovering connections between different disciplines by creating quantitatively comparable structural analytics.&lt;/p>
&lt;h3 id="polyphy-web-presence">PolyPhy Web Presence&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> &lt;code>Web Development&lt;/code> &lt;code>UX&lt;/code> &lt;code>Social Media&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> full stack web development, Javascript, good communicator&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Challenging&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/oskar-elek/">Oskar Elek&lt;/a>, &lt;a href="mailto:ez@nmsu.edu">Ezra Huscher&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>The online presentation of a software project is without a doubt one of the core ingredients of its success. This project aims to develop a sustainable web presentce for PolyPhy, catering to interested contributors, active collaborators, and users alike.&lt;/p>
&lt;p>Specific tasks:&lt;/p>
&lt;ul>
&lt;li>Closely work with the mentors on understanding the context of the project and its detailed requirements in preparation of the proposal.&lt;/li>
&lt;li>Port the existing &lt;a href="https://polyphy.io" target="_blank" rel="noopener">website&lt;/a> into a more modern Javascript framework (such as Next.js) that provides a user-friendly CMS and admin interface.&lt;/li>
&lt;li>Update the contents of the website with new information from the repository &lt;a href="https://github.com/CreativeCodingLab/Polyphorm" target="_blank" rel="noopener">repository page&lt;/a> as well as other sources as directed by the mentors.&lt;/li>
&lt;li>Develop a simple functional system for posting updates about the project to selected social media and other communication platforms (LinkedIn, Twitter/X or Mastodon, mailing list) which will also be reflected on the website.&lt;/li>
&lt;li>Optional: improve the UX of the website where needed.&lt;/li>
&lt;li>Optional: implement website analytics (visitor stats etc).&lt;/li>
&lt;/ul>
&lt;h3 id="data-visualization-and-analysis-with-polyphypolyglot">Data Visualization and Analysis with PolyPhy/Polyglot&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> &lt;code>Data Science&lt;/code> &lt;code>Data Visualization&lt;/code> &lt;code>Point Clustering&lt;/code> &lt;code>3D&lt;/code> &lt;code>Neural Embeddings&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> data science, Python, Javascript, statistics, familiarity with AI and latent embedding spaces a big plus&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Challenging&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Large (350+ hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/oskar-elek/">Oskar Elek&lt;/a>, &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/kiran-deol/">Kiran Deol&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>The aim of this project is to explore a novel data-scientific usecase using PolyPhy and its associated web visualization interface &lt;a href="https://github.com/PolyPhyHub/PolyGlot" target="_blank" rel="noopener">PolyGlot&lt;/a>. The contributor is expected to identify a dataset they are already well familiar with, and that fits the application scope of the PolyPhy/PolyGlot tooling: a complex point cloud arising from a 3D or a higher dimensional process which will benefit from latent pattern identification and a subsequent visual as well as quantitative analysis. The contributor needs to have the rights for using the dataset - either by owning the copyright or via the open-source nature of the data.&lt;/p>
&lt;p>&lt;strong>Specific tasks:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>Closely work with the mentors on understanding the context of the project and its detailed requirements in preparation of the proposal.&lt;/li>
&lt;li>Become acquainted with the tooling (PolyPhy, PolyGlot) prior to the start of the project period.&lt;/li>
&lt;li>Document the nature of the target dataset and define the complete data pipeline with assistance of the mentors, including the specific analytic tasks and objectives.&lt;/li>
&lt;li>Implement the data pipeline in PolyPhy and PolyGlot.&lt;/li>
&lt;li>Document the process and resulting findings in a publicly available report.&lt;/li>
&lt;/ul></description></item><item><title>OSRE Catalyst</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre23/ucsc/catalyst/</link><pubDate>Thu, 23 Mar 2023 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre23/ucsc/catalyst/</guid><description>&lt;p>Contributing to an open source project is a great way to build a technical portfolio, learn industry tools/practices, and have real-world impact – all while embedded in a collaborative community. The UC Santa Cruz Open Source Program Office (OSPO) wants to support more students on this path, especially those who have been minoritized in tech. We are partnering with an HBCU for a pilot summer program offering, with hopes to expand our reach in 2024.&lt;/p>
&lt;p>Through a hybrid (in-person/remote) model, participating students will spend four weeks on the UCSC campus learning about open source, followed by four weeks remotely contributing to an open source project. Participants will be well-supported by our instructional team, as well as their small peer cohort, through community-building and mentorship spanning the full eight weeks.&lt;/p>
&lt;h3 id="pilot-program-mentor--developer">Pilot Program Mentor &amp;amp; Developer&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> &lt;code>Education&lt;/code>, &lt;code>Broadening Participation&lt;/code>, &lt;code>Mentorship and Support&lt;/code>, &lt;code>Community&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> communication, organization, GitHub/Markdown, basic web programming (HTML, CSS, JavaScript), open source contribution, version control/git workflow, mentorship, teaching&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Novice to Intermediate&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Medium or Large (175 or 350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/emily-lovell/">Emily Lovell&lt;/a>, &lt;a href="mailto:davis@soe.ucsc.edu">James Davis&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Given that this is a program pilot, your involvement and feedback will directly help shape its future!&lt;/p>
&lt;p>Possible tasks:&lt;/p>
&lt;ul>
&lt;li>Help cultivate a welcoming and supportive learning community&lt;/li>
&lt;li>Support students in completing hands-on activities related to open source contribution (e.g. evaluating potential projects/communities, using git, setting up a development environment)&lt;/li>
&lt;li>Develop technology-specific tutorials to introduce students to languages/libraries/etc. employed by their project&lt;/li>
&lt;li>Offer mentorship around how to navigate documentation, large codebases, and contributor communities&lt;/li>
&lt;li>Share your own input and perspective on what it&amp;rsquo;s like to be a newcomer to open source!&lt;/li>
&lt;/ul></description></item><item><title>eBPF Monitoring Tools</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre23/lanl/ebpftools/</link><pubDate>Tue, 21 Feb 2023 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre23/lanl/ebpftools/</guid><description>&lt;p>&lt;a href="https://ebpf.io" target="_blank" rel="noopener">eBPF&lt;/a> is a technology that allows sandboxed programs to run in a priviledged context such as a Linux kernel. eBPF is for operating systems what Javascript is for web browsers: new functionality can be safely loaded without restarting or continually upgrading the operating system or browser and executed efficiently. eBPF is used to introduce new functionality into a running Linux kernel, including next-generation networking, observability, and security functionality. The following is just one idea of many possible.&lt;/p>
&lt;h3 id="implement-darshan-functionality-as-ebpf-tool">Implement Darshan functionality as eBPF tool&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> performance, I/O, workload characterization&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Medium&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Medium or large (175 or 350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="mailto:treddy@lanl.gov">Tyler Reddy&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>&lt;a href="https://www.mcs.anl.gov/research/projects/darshan/" target="_blank" rel="noopener">Darshan&lt;/a> is an HPC I/O characterization tool that collect statistics using a lightweight design that makes it suitable for full time deployment. Darshan is an interposer library that catches and counts IO requests (open, write, read, etc.) to a file/file system and it keeps the counters in buckets in data structure that can be queried. How many reads of small size, medium size, large size) for example are the types of things that are counted.&lt;/p>
&lt;p>Having this be an interposer library requires users to link their application with this library. Having this function in epbf would make this same function transparent to users. Darshan has all the functions and could provide the list of functions to implement and the programmer could build and test these functions in ebpf on a linux machine. This could be a broadly available open tool that would be generally useful and but one of perhaps hundreds of examples of where ebpf based tools that could be in the open community for all to leverage.&lt;/p></description></item><item><title>Reproducible Evaluation of Multipath Network Protocols</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre23/farmingdale/multipath/</link><pubDate>Thu, 16 Feb 2023 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre23/farmingdale/multipath/</guid><description>&lt;p>Lead Mentor: &lt;a href="mailto:aydini@farmingdale.edu">Ilknur Aydin&lt;/a>&lt;/p>
&lt;p>As mobile devices with dual WiFi and cellular interfaces become widespread, network protocols have been developed that utilize the availability of multiple paths. However, the relative effectiveness of these protocols is highly dependent on the characteristics of the network (including the relationship between the two paths, which are often not independent). Researchers typically evaluate a multipath protocol for a small set of network scenarios, which vary from one publication to the next. It is therefore difficult to get a good picture of how different protocols perform in a range of settings.&lt;/p>
&lt;h3 id="framework-for-repeatable-direct-comparison-of-multipath-transport-protocols">Framework for repeatable, direct comparison of multipath transport protocols&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: Computer networks, wireless systems&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: Linux, networking, data analysis and visualization, writing&lt;/li>
&lt;li>&lt;strong>Difficulty&lt;/strong>: Large&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong>: 350 hours&lt;/li>
&lt;li>&lt;strong>Mentor(s)&lt;/strong>: &lt;a href="mailto:aydini@farmingdale.edu">Ilknur Aydin&lt;/a> and &lt;a href="mailto:ffund@nyu.edu">Fraida Fund&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>In single-path congestion control, the &lt;a href="https://pantheon.stanford.edu/" target="_blank" rel="noopener">Pantheon&lt;/a> work created a reference set of executable benchmarks that researchers could use to evaluate novel congestion control designs against existing work in a wide range of the scenarios. This project seeks to achieve something similar for multipath protocols, using publicly available networking testbeds like &lt;a href="https://fabric-testbed.net/" target="_blank" rel="noopener">FABRIC&lt;/a>. For this project, the participant will:&lt;/p>
&lt;ul>
&lt;li>Prepare a set of network benchmarks for multipath protocols, using live network links, real link traces, and emulated scenarios&lt;/li>
&lt;li>Develop an experiment using the benchmarks to evaluate existing multipath protocol implementations&lt;/li>
&lt;li>Prepare materials that researchers can use to evaluate novel multipath protocols against the others in the benchmark&lt;/li>
&lt;/ul></description></item><item><title>Proactive Data Containers (PDC)</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre23/lbl/pdc/</link><pubDate>Sun, 12 Feb 2023 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre23/lbl/pdc/</guid><description>&lt;p>&lt;a href="https://sdm.lbl.gov/pdc/about.html" target="_blank" rel="noopener">Proactive Data Containers&lt;/a> (PDC) are containers within a locus of storage (memory, NVRAM, disk, etc.) that store science data in an object-oriented manner. Managing data as objects enables powerful optimization opportunities for data movement and transformations, and storage mechanisms that take advantage of the deep storage hierarchy and enable automated performance tuning.&lt;/p>
&lt;h3 id="command-line-and-python-interface-to-an-object-centric-data-management-system">Command line and python interface to an object-centric data management system&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: &lt;code>Python&lt;/code>, &lt;code>object-centric data management&lt;/code>, &lt;code>PDC&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: Linux, C, Python&lt;/li>
&lt;li>&lt;strong>Difficulty&lt;/strong>: Medium&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong>: Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors&lt;/strong>: &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/houjun-tang/">Houjun Tang&lt;/a>, &lt;a href="mailto:sbyna@lbl.gov">Suren Byna&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>&lt;a href="https://github.com/hpc-io/pdc" target="_blank" rel="noopener">Proactive Data Containers (PDC)&lt;/a> is an object-centric data management system for scientific data on high performance computing systems. It manages objects and their associated metadata within a locus of storage (memory, NVRAM, disk, etc.). Managing data as objects enables powerful optimization opportunities for data movement and transformations, and storage mechanisms that take advantage of the deep storage hierarchy and enable automated performance tuning. This project includes developing and updating efficient and user friendly command line and Python interfaces for PDC.&lt;/p></description></item><item><title>Is Reproducibility Enough? Understanding the Impact of Missing Settings in Artifact Evaluation</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre23/osu/missingsettings/</link><pubDate>Wed, 08 Feb 2023 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre23/osu/missingsettings/</guid><description>&lt;p>While Artifact Evaluation tries to ensure that the evaluation results in a paper are reproducible, it leaves one question: How about experiment settings NOT reported by the paper? Such “missing settings” may create multiple problems: 1) sometimes the artifacts simply do not work under these missing settings, creating problems when a later work needs to compare to an earlier work under these settings; 2) sometimes the artifacts do not perform well under these missing settings, which may create a bias during the evaluation; 3) to improve the artifact to work under these missing settings, sometimes one needs to re-design the system, which may change the results of the original experiments.&lt;/p>
&lt;p>In this project, we plan to understand the impact of this problem: On the necessity side, how would these missing settings affect the conclusions of the original work? On the feasibility side, how much effort does it require to carry out extensive experiments? We plan to answer these questions by reproducing prior works, running them on popular settings that are not reported by these works, and fixing problems if any.&lt;/p>
&lt;h3 id="measuring-research-prototypes-under-unreported-settings">Measuring Research Prototypes under Unreported Settings&lt;/h3>
&lt;p>&lt;strong>Topics:&lt;/strong> reproducibility, databases, key-value stores, DNN training&lt;br>
&lt;strong>Skills:&lt;/strong> Java/Python, Linux, TPC/YCSB&lt;br>
&lt;strong>Difficulty:&lt;/strong> Medium&lt;br>
&lt;strong>Size:&lt;/strong> 350 hours&lt;br>
&lt;strong>Mentor(s):&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/yang-wang/">Yang Wang&lt;/a>, &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/miao-yu/">Miao YU&lt;/a>&lt;br>
&lt;strong>Contributor(s):&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/xueyuan-ren/">Xueyuan Ren&lt;/a>&lt;/p>
&lt;p>The student will first pick one or a few systems she is interested in. Then she will first try to reproduce their reported results. If successful, she will further try to measure these systems under previously unreported settings. During the procedure, she will need to diagnose and fix any problems that may show up. Finally, she will analyze whether the original conclusions still hold under these new settings and whether fixing any problems will change the performance characteristics of the target systems.&lt;/p></description></item><item><title>OpenRAM</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre23/ucsc/openram/</link><pubDate>Wed, 08 Feb 2023 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre23/ucsc/openram/</guid><description>&lt;p>&lt;a href="https://github.com/VLSIDA/OpenRAM" target="_blank" rel="noopener">OpenRAM&lt;/a> is an award winning open-source Python framework to create the layout, netlists, timing and power models, placement and routing models, and other views necessary to use SRAMs in ASIC design. OpenRAM supports integration in both commercial and open-source flows with both predictive and fabricable technologies. Most recently, it has created memories that are included on all of the &lt;a href="https://efabless.com/open_shuttle_program/" target="_blank" rel="noopener">eFabless/Google/Skywater MPW tape-outs&lt;/a>.&lt;/p>
&lt;h3 id="layout-verses-schematic-lvs-visualization">Layout verses Schematic (LVS) visualization&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> &lt;code>VLSI Design Basics&lt;/code>, &lt;code>Python&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> Python, VLSI, JSON&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Easy/Medium&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Medium or Large (175 or 350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/jesse-cirimelli-low/">Jesse Cirimelli-Low&lt;/a>, &lt;a href="mailto:mrg@ucsc.edu">Matthew Guthaus&lt;/a>&lt;/li>
&lt;li>&lt;strong>Contributor(s):&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/mahnoor-ismail/">Mahnoor Ismail&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Create a visualization interface to debug layout verses schematic mismatches in &lt;a href="https://github.com/RTimothyEdwards/magic" target="_blank" rel="noopener">Magic&lt;/a> layout editor. Results will be parsed from a JSON output of &lt;a href="https://github.com/RTimothyEdwards/netgen" target="_blank" rel="noopener">Netgen&lt;/a>.&lt;/p></description></item><item><title>noWorkflow</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre23/nyu/noworkflow/</link><pubDate>Tue, 07 Feb 2023 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre23/nyu/noworkflow/</guid><description>&lt;p>The &lt;a href="https://github.com/gems-uff/noworkflow" target="_blank" rel="noopener">noWorkflow&lt;/a> project aims at allowing scientists to benefit from provenance data analysis even when they don&amp;rsquo;t use a workflow system. Also, the goal is to allow them to avoid using naming conventions to store files originated in previous executions. Currently, when this is not done, the result and intermediate files are overwritten by every new execution of the pipeline.&lt;/p>
&lt;p>noWorkflow was developed in Python, and it is currently able to capture provenance of Python scripts using Software Engineering techniques such as abstract syntax tree (AST) analysis, reflection, and profiling, to collect provenance without the need of a version control system or any other environment.&lt;/p>
&lt;p>At the moment of this writing, the main version of noWorkflow is in the 2.0-alpha branch. We intend to release it before the summer.&lt;/p>
&lt;h3 id="verify-the-reproducibility-of-an-experiment">Verify the reproducibility of an experiment&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> Reproducibility&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> Python, SQL or SQLAlchemy ORM&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Moderate&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Medium or large (175 or 350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/joao-felipe-pimentel/">João Felipe Pimentel&lt;/a>, &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/juliana-freire/">Juliana Freire&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Implement an algorithm to compare the provenance from two (or more) trials (i.e., executions of an experiment) to check their reproducibility. The provenance stored in the relational (sqlite) database by noWorkflow 2 contains intermediate variable values from a trial. These values could be compared to check how much or where executions deviate from each other.&lt;/p>
&lt;p>Specific tasks:&lt;/p>
&lt;ul>
&lt;li>Compare trials of the same script (Medium)&lt;/li>
&lt;li>Estimate how much on trial deviate from another (Medium)&lt;/li>
&lt;li>Consider different scripts and execution flows (Large)&lt;/li>
&lt;li>Indicate which parts of the scripts are not reproducible (Large)&lt;/li>
&lt;/ul>
&lt;h3 id="control-levels-of-provenance-collection">Control levels of provenance collection&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> Log experiments&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> Python&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Challenging&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/joao-felipe-pimentel/">João Felipe Pimentel&lt;/a>, &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/juliana-freire/">Juliana Freire&lt;/a>&lt;/li>
&lt;li>&lt;strong>Contributor(s)&lt;/strong>: &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/jesse-lima/">Jesse Lima&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Add support for different levels of provenance collection in noWorkflow 2. Currently, noWorkflow 2 collects Python construct evaluations and all the dependencies among the evaluations. However, this collection is inefficient, since some of the collected provenance may not be necessary for end-users. In this project, it is desirable to provide ways to temporarily disable the provenance collection and to manually indicate the provenance in this situation.&lt;/p>
&lt;p>Specific tasks:&lt;/p>
&lt;ul>
&lt;li>Disable the collection inside specific functions (through decorators?)&lt;/li>
&lt;li>Disable the collection inside specific regions of the code (through with statements?)&lt;/li>
&lt;li>Collect only function activations in a region, instead of all variable dependencies&lt;/li>
&lt;li>Disable the collection of specific modules&lt;/li>
&lt;li>Design a DSL to express general dependencies for parts of the code where the collection is disabled&lt;/li>
&lt;/ul>
&lt;h3 id="upgrade-noworkflow-collection-to-support-new-python-constructs">Upgrade noWorkflow collection to support new Python constructs&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> Log experiments&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> Python&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Moderate&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/joao-felipe-pimentel/">João Felipe Pimentel&lt;/a>, &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/juliana-freire/">Juliana Freire&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Implement new AST transformations for provenance collection. While noWorkflow 2 works for newer Python versions, most of its implementation was targeted at Python 3.7. Newer Python versions have new constructs in which the provenance is ignored.&lt;/p>
&lt;p>Specific tasks:&lt;/p>
&lt;ul>
&lt;li>Identify which AST constructs implementations are missing&lt;/li>
&lt;li>Design AST transformations to execute functions before and after the evaluation of the constructs&lt;/li>
&lt;li>Create the dependencies for the new constructs&lt;/li>
&lt;/ul></description></item><item><title>ScaleBugs: Reproducible Scalability Bugs</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre23/ucdavis/scalebugs/</link><pubDate>Tue, 07 Feb 2023 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre23/ucdavis/scalebugs/</guid><description>&lt;p>Scalable systems lay essential foundations of the modern information industry. HPC data centers tend to have hundreds to thousands of nodes in their clusters. The use of “extreme-scale” distributed systems has given birth to a new type of bug: scalability bugs. As its name suggests, scalability bugs may be presented depending on the scale of a run, and thus, symptoms may only be observable in large-scale deployments, but not in small or median deployments. For example, &lt;a href="https://issues.apache.org/jira/browse/CASSANDRA-6127" target="_blank" rel="noopener">Cassandra-6127&lt;/a> is a scalability bug detected in the popular distributed database Cassandra. The scalability bug causes unnecessary CPU usage, however, the symptom is not observed unless ~1000 nodes are deployed. This demonstrates the main challenge of studying scalability bugs: it is extremely challenging to reproduce without deploying the system at a large scale.&lt;/p>
&lt;p>In this project, our goal is to build a dataset of &lt;strong>reproducible&lt;/strong> scalability bugs. To achieve this, we will go through the existing bug reports for popular distributed systems, which include Cassandra, HDFS, Ignite, and Kafka. For each bug report, we determine if the reported bug depends on the scale of the run, such as the number of nodes utilized. With the collected scale-dependent bugs, we then will craft the workload to reproduce those scalability bugs. Our workloads will be designed to trigger some functionalities of the system under different configurations (e.g., different numbers of nodes), for which we will observe the impact on performance. For example, a successful reproduction should be able to show the performance drop along with an increasing number of nodes.&lt;/p>
&lt;h3 id="building-a-dataset-of-reproducible-scalability-bugs">Building a Dataset of Reproducible Scalability Bugs&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: Scalability systems, bug patterns, reproducibility, bug dataset&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: Linux Shell, Docker, Java, Python&lt;/li>
&lt;li>&lt;strong>Difficulty&lt;/strong>: Medium&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong>: Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors&lt;/strong>: &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/cindy-rubio-gonzalez/">Cindy Rubio González&lt;/a>, &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/haryadi-s.-gunawi/">Haryadi S. Gunawi&lt;/a>, &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/hao-nan-zhu/">Hao-Nan Zhu&lt;/a>&lt;/li>
&lt;li>&lt;strong>Contributor(s)&lt;/strong>: &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/goodness-ayinmode/">Goodness Ayinmode&lt;/a>, &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/zahra-nabila-maharani/">Zahra Nabila Maharani&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>The student will build a dataset of reproducible scalability bugs. Each bug artifact in the dataset will contain (1) the buggy and fixed versions of the scalability system, (2) a runtime environment that ensures reproducibility, and (3) a workload shell script that could demonstrate the symptoms of the bug under different scales.&lt;/p>
&lt;h4 id="specific-tasks">Specific Tasks&lt;/h4>
&lt;ul>
&lt;li>Work with the mentors to understand the context of the project.&lt;/li>
&lt;li>Learn the background of scalability systems.&lt;/li>
&lt;li>Inspect the bug reports from Apache JIRA and identify scale-dependent bugs.&lt;/li>
&lt;li>Craft shell scripts to trigger the exact scalability bug described by the bug report.&lt;/li>
&lt;li>Organize the reproducible scalability bugs and write documentation to build the code
and trigger the bug.&lt;/li>
&lt;/ul></description></item><item><title>Strengthening Underserved Segments of the Open Source Pipeline</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre23/ucsc/sus/</link><pubDate>Tue, 07 Feb 2023 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre23/ucsc/sus/</guid><description>&lt;p>Contributing to an open source project offers novices the opportunity to join a community of practitioners, build a technical portfolio, gain experience with industry tools and technologies, and have real-world impact. This project seeks to invite and support broader, more diverse participation in open source by supporting &lt;em>early contributors&lt;/em> – especially those who have been historically minoritized within tech.&lt;/p>
&lt;p>This work builds upon a number of existing projects with similar or overlapping goals. Some examples:&lt;/p>
&lt;ul>
&lt;li>The &lt;a href="http://teachingopensource.org" target="_blank" rel="noopener">Teaching Open Source (TOS) community&lt;/a>, which brings together instructors teaching open source&lt;/li>
&lt;li>The &lt;a href="http://foss2serve.org/index.php/POSSE" target="_blank" rel="noopener">Professors&amp;rsquo; Open Source Software Experience (POSSE) workshops and wiki&lt;/a>, for faculty teaching - or wanting to teach - open source&lt;/li>
&lt;li>Internships such as &lt;a href="https://summerofcode.withgoogle.com" target="_blank" rel="noopener">Google Summer of Code (GSoC)&lt;/a>, &lt;a href="https://www.outreachy.org" target="_blank" rel="noopener">Outreachy&lt;/a>, and the &lt;a href="https://fellowship.mlh.io" target="_blank" rel="noopener">MLH Fellowship&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://campus.openhatch.org" target="_blank" rel="noopener">Open Source Comes to Campus&lt;/a>, offering student workshops on tools and culture &lt;em>[no longer active]&lt;/em>&lt;/li>
&lt;li>&lt;a href="https://codein.withgoogle.com/archive/" target="_blank" rel="noopener">Google Code-in&lt;/a>, inviting pre-university students to make open source contributions &lt;em>[no longer active]&lt;/em>&lt;/li>
&lt;/ul>
&lt;p>This project will investigate gaps in currently available resources/programs and seek to address them, beginning with the exploration of engaging high school students with open source. Depending on early findings, this project could also entail the development of resources for independent learners and/or mentors.&lt;/p>
&lt;h3 id="learning-resource-development--repository-building">Learning Resource Development + Repository-Building&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> &lt;code>Education&lt;/code>, &lt;code>Broadening Participation&lt;/code>, &lt;code>Mentorship and Support&lt;/code>, &lt;code>Community Development&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> independent research, communication, organization, GitHub/Markdown, basic web programming (HTML, CSS, JavaScript)&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Novice to Intermediate&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Medium or Large (175 or 350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/emily-lovell/">Emily Lovell&lt;/a>, &lt;a href="mailto:davis@soe.ucsc.edu">James Davis&lt;/a>&lt;/li>
&lt;li>&lt;strong>Contributor(s):&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/nandini-saagar/">Nandini Saagar&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>As an early contributor to this project, you will help gather information to inform the project direction – and then help bring it to life!&lt;/p>
&lt;p>Possible tasks:&lt;/p>
&lt;ul>
&lt;li>Meet with teachers and/or community members to identify new opportunities to engage with students (e.g. outside-of-school workshops, classroom visits, materials for teachers to use independently)&lt;/li>
&lt;li>Evaluate and test existing learning activities with a high school audience in mind (e.g. consider necessary pre-requisites, time required, ideal activity format)&lt;/li>
&lt;li>Evaluate and organize existing resources for newcomers (e.g. &lt;a href="https://up-for-grabs.net/#/" target="_blank" rel="noopener">Up For Grabs&lt;/a>, &lt;a href="https://hacktoberfest.com" target="_blank" rel="noopener">Hacktoberfest&lt;/a>, internship/fellowship opportunites)&lt;/li>
&lt;li>Help design and pilot new learning activities and/or workshops&lt;/li>
&lt;li>Assist in curating an open source repository of the aforementioned resources&lt;/li>
&lt;li>Conduct outreach to our target communities (e.g. brainstorm a catchy repository name, compose inviting and inclusive emails, design visual project elements)&lt;/li>
&lt;li>Share your own input and perspective on what it&amp;rsquo;s like to be a newcomer to open source!&lt;/li>
&lt;/ul></description></item><item><title>LabOP - an open specification for laboratory protocols, that solves common interchange problems stemming from variations in scale, labware, instruments, and automation.</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre23/ucsd/labop/</link><pubDate>Mon, 06 Feb 2023 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre23/ucsd/labop/</guid><description>&lt;!---
Instructions for project submission here: https://ospo.ucsc.edu/osredocs/formentors/
All the projects so far:
https://ospo.ucsc.edu/osre/#projects
-->
&lt;h3 id="project-idea-1-software-hardware-and-wetware-building-labop-with-simultaneous-language--protocol-development--test-executions">Project idea 1: Software, hardware, and wetware building LabOP with simultaneous language &amp;amp; protocol development &amp;amp; test executions&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> Software standard development, Laboratory automation, Biology&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> Python, Semantic Web Technologies (RDF, OWL), interest to think about describing biological &amp;amp; chemical laboratory processes&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Moderate&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong>
&lt;ol>
&lt;li>&lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/tim-fallon/">Tim Fallon&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/dan-bryce/">Dan Bryce&lt;/a>&lt;/li>
&lt;/ol>
&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h4 id="about-the-laboratory-open-protocol-language-labop">About: The Laboratory Open Protocol Language (LabOP)&lt;/h4>
&lt;p>&lt;strong>See link: &lt;a href="https://bioprotocols.github.io/labop/" target="_blank" rel="noopener">https://bioprotocols.github.io/labop/&lt;/a>&lt;/strong>&lt;/p>
&lt;p>LabOP is an &lt;em>open&lt;/em> specification for laboratory protocols, that solves common interchange problems stemming from variations in scale,
labware, instruments, and automation. LabOP was built from the ground-up to support protocol interchange. It provides an extensible
library of protocol primitives that capture the control and data flow needed for simple calibration and culturing protocols to
industrial control.&lt;/p>
&lt;h5 id="software-ecosystem">Software Ecosystem&lt;/h5>
&lt;p>LabOP&amp;rsquo;s rich representation underpins an ecosystem of several powerful software tools, including:&lt;/p>
&lt;ul>
&lt;li>&lt;a href="https://www.github.com/bioprotocols/labop" target="_blank" rel="noopener">labop&lt;/a>: the Python LabOP library, which supports:
&lt;ul>
&lt;li>&lt;em>Programming&lt;/em> LabOP protocols in Python,&lt;/li>
&lt;li>&lt;em>Serialization&lt;/em> of LabOP protocols conforming to the LabOP RDF specification,&lt;/li>
&lt;li>&lt;em>Execution&lt;/em> in the native LabOP semantics (rooted in the UML activity model),&lt;/li>
&lt;li>&lt;em>Specialization&lt;/em> of protocols to 3rd-party protocol formats (including Autoprotocol, OpenTrons, and human readible formats), and&lt;/li>
&lt;li>&lt;em>Integration&lt;/em> with instruments (including OpenTrons OT2, Echo, and SiLA-based automation).&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="https://www.github.com/bioprotocols/laboped" target="_blank" rel="noopener">laboped&lt;/a>: the web-based LabOP Editor, which supports:
&lt;ul>
&lt;li>&lt;em>Programming&lt;/em> LabOP protocols quickly with low-code visual scripts,&lt;/li>
&lt;li>&lt;em>Storing&lt;/em> protocols on the cloud,&lt;/li>
&lt;li>&lt;em>Exporting&lt;/em> protocol specializations for use in other execution frameworks,&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h4 id="about-the-bioprotocols-working-group">About the Bioprotocols Working Group&lt;/h4>
&lt;p>The Bioprotocols Working Group is an open community organization developing a free and open standard for representation of biological
protocols.&lt;/p>
&lt;p>To join the Bioprotocols Working Group:&lt;/p>
&lt;ul>
&lt;li>Join the community mailing list at: &lt;a href="https://groups.google.com/g/bioprotocols" target="_blank" rel="noopener">https://groups.google.com/g/bioprotocols&lt;/a>&lt;/li>
&lt;li>Join the &lt;code>#collab-bioprotocols&lt;/code> channel on the &lt;a href="https://bitsinbio.org/" target="_blank" rel="noopener">Bits in Bio&lt;/a> Slack.&lt;/li>
&lt;/ul>
&lt;h5 id="leadership">Leadership&lt;/h5>
&lt;p>&lt;em>Elected Term: August 24th, 2022 - August 23rd, 2023&lt;/em>&lt;/p>
&lt;p>&lt;strong>Chair:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/dan-bryce/">Dan Bryce&lt;/a> (SIFT)&lt;/p>
&lt;p>&lt;strong>Finance Committee:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;a href="mailto:jeremy.cahill@metamerlabs.io">Jeremy Cahill (Metamer Labs)&lt;/a>&lt;/li>
&lt;li>&lt;a href="mailto:mark.doerr@uni-greifswald.de">Mark Doerr (University of Greifswald)&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/tim-fallon/">Tim Fallon&lt;/a> (UCSD)&lt;/li>
&lt;/ul>
&lt;h5 id="governance">Governance&lt;/h5>
&lt;p>&lt;em>Approved by community vote on August 16th, 2022&lt;/em>&lt;/p>
&lt;p>&lt;strong>&lt;a href="https://bioprotocols.github.io/labop/about#Governance" target="_blank" rel="noopener">https://bioprotocols.github.io/labop/about#Governance&lt;/a>&lt;/strong>&lt;/p>
&lt;h5 id="mission">Mission:&lt;/h5>
&lt;p>The Bioprotocols Working Group is an open community organization developing free and open standards for representation of biological
protocols. In support of that goal, the organization also develops tools and practices and works with other organizations to
facilitate dissemination and adoption of these standards.&lt;/p>
&lt;p>As an organization, the Bioprotocols Working Group holds the following values:&lt;/p>
&lt;ul>
&lt;li>The standards developed by the community should be available under permissive free and open licenses.&lt;/li>
&lt;li>Technical decisions of the community should be made following open and inclusive processes.&lt;/li>
&lt;li>The community is strengthened by fostering a culture of diversity and inclusion, in which all constructive participants feel
comfortable making their voices heard.&lt;/li>
&lt;/ul></description></item><item><title>GPU Emulator for Easy Reproducibility of DNN Training</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre23/utexas/gpuemulator/</link><pubDate>Sun, 05 Feb 2023 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre23/utexas/gpuemulator/</guid><description>&lt;p>Deep Neural Networks (DNN) have achieved success in many machine learning (ML) tasks including image recognition, video classification and natural language processing. Nonetheless, training DNN models is highly computation intensive and usually requires running complex computations on GPUs, while GPU is a very expensive and scarce resource. Therefore, many research works on DNN training are delayed because of the lack of access to GPUs. However, many research prototypes don&amp;rsquo;t require GPUs but only the performance profiles of GPUs. For example, research on DNN training storage systems doesn’t need to run real computations on GPUs, but only needs to know how much time each GPU computation will take. Meanwhile, GPU performance in DNN training is predictable and reproducible, as every batch of training performs a deterministic sequence of mathematical operations on a fixed number of data.&lt;/p>
&lt;p>Therefore, in this project we seek to build a GPU emulator platform on PyTorch to easily reproduce DNN training without using real GPUs. We will measure the performance profiles of GPU computations for different models, GPU types, and batch sizes. Based on the measured GPU performance profiles, we will build a platform to emulate the GPU behaviors and reproduce DNN training using CPUs only. We will make the platform and the measurements open-source, allowing other researchers to reproduce the performance measurements and easily conduct research on DNN training systems. We will also encourage the community to enrich the database by adding GPU performance measurements for their own models and GPU types. We will be the first one to build and release this kind of GPU emulator for DNN training, and we believe researchers and the community can benefit a lot from it, especially after more and more GPU performance profiles are added by the community.&lt;/p>
&lt;h3 id="building-a-platform-to-emulate-gpu-performance-in-dnn-training">Building a platform to emulate GPU performance in DNN training&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> DNN training, reproducibility, GPU emulator, performance measurement - Skills: Linux, Python, PyTorch, deep learning&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Medium&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> 350 hours&lt;/li>
&lt;li>&lt;strong>Mentor(s):&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/vijay-chidambaram/">Vijay Chidambaram&lt;/a>, &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/yeonju-ro/">Yeonju Ro&lt;/a>&lt;/li>
&lt;li>&lt;strong>Contributor(s):&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/haoran-wu/">Haoran Wu&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>The student will measure the GPU performance profiles for different models and GPU types, based on which the student will build a platform to emulate the GPU behaviors and easily reproduce DNN training. The GPU performance measurements should be made open-source and reproducible for other researchers to reproduce results and add GPU profiles for their own needs.&lt;/p>
&lt;p>Specific tasks:&lt;/p>
&lt;ul>
&lt;li>Work with mentors on understanding the context of the project.&lt;/li>
&lt;li>Study and get familiar with the PyTorch DNN training pipelines&lt;/li>
&lt;li>Measure GPU performance profiles for different DNN models and GPU types&lt;/li>
&lt;li>Based on the GPU performance measurements, build a platform to emulate the GPU behaviors and reproduce DNN training without using real GPUs&lt;/li>
&lt;li>Organize and document the codes to make them reproducible for the community&lt;/li>
&lt;/ul></description></item><item><title>Reproduce and benchmark self-adaptive edge applications under dynamic resource management</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre23/uchicago/edgebench/</link><pubDate>Thu, 02 Feb 2023 00:15:56 -0700</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre23/uchicago/edgebench/</guid><description>&lt;p>With the flourishing of the ideas like smart cities or smart manufacturing, a massive amount of edge devices (e.g., traffic or security cameras, thermometers, flood sensors, et al.) are deployed and connected to the network to collect/analyze data across the space and time and help the stakeholders like city governments or manufacturers optimizing their plans and operations. Such a large number of edge devices and large amount of communications among the devicesdd or to the central servers rise a big challenge on how to manage/schedule the resource (i.e., network bandwidth between the devices and/or computing power on both edge devices and bare metal servers) to ensure the running applications&amp;rsquo; capability of providing a reliable service. Furthermore, with the nature of limited resources available to the edge devices, there is an uprising trend to reduce the average compute and/or bandwidth usage by leveraging the uneven distribution of interesting events with respect to both time and space in the input data. This brings further challenges for provisioning and managing the amount of resources available to the edge devices, as the running applications&amp;rsquo; resource demands can greatly depend on the input data which is both dynamic and unpredictable.&lt;/p>
&lt;p>With these challenges in mind, the team previously designed and implemented a dynamic resource manager that could understand the applications and make decisions based on such understanding at run time. This understanding is achieved based on a key insight - applications will have different magnitudes of performance improvement/degradation toward the change in the amount of resources available depending on the input data and how many resources the applications currently have, which we define as applications&amp;rsquo; sensitivities. However, such a resource manager has only been tested with a limited number and types of video analytic applications. Hence, through the OSRE23 project, we aim to:&lt;/p>
&lt;ol>
&lt;li>reproduce other state-of-art self-adaptive video analytic applications,&lt;/li>
&lt;li>integrate the reproducible applications into the resource manager framework,&lt;/li>
&lt;li>compare the performance with and without resource manager.&lt;/li>
&lt;/ol>
&lt;h3 id="reproducebenchmark-the-self-adaptive-video-analytic-applications-performance-under-dynamic-resource-management">Reproduce/benchmark the self-adaptive video analytic applications&amp;rsquo; performance under dynamic resource management&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> Benchmark, Reproducibility, Video analytics, Machine Learning, Resource Management&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> Python, PyTorch, TensorFlowd&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Challenging&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="mailto:junchenj@uchicago.edu">Junchen Jiang&lt;/a>, &lt;a href="mailto:yuyangh@uchicago.edu">Yuyang Huang&lt;/a>&lt;/li>
&lt;li>&lt;strong>Contributor(s):&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/faishal-zharfan/">Faishal Zharfan&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Integrate various types of video analytic applications into the aforementioned dynamic resource manager and reproduce/benchmark the applications&amp;rsquo; performance.&lt;/p>
&lt;p>Specific tasks:&lt;/p>
&lt;ul>
&lt;li>Reproduce state-of-art video analytic applications&lt;/li>
&lt;li>Integrate such applications into the resource manager framework - Benchmark video analytic applications&lt;/li>
&lt;li>Analysis the benchmarked performance results&lt;/li>
&lt;/ul></description></item><item><title>FlashNet: Towards Reproducible Data Science for Storage System</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre23/uchicago/flashnet/</link><pubDate>Thu, 02 Feb 2023 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre23/uchicago/flashnet/</guid><description>&lt;p>The Data Storage Research Vision 2025, organized in an NSF workshop, calls for more “AI for storage” research. However, performing ML-for-storage research can be a daunting task for new storage researchers. The person must know both the storage side as well the ML side as if studying two different fields at the same time. This project aims to answer these questions:&lt;/p>
&lt;ol>
&lt;li>How can we encourage data scientists to look into storage problems?&lt;/li>
&lt;li>How can we create a transparent platform that allows such decoupling?&lt;/li>
&lt;li>Within the storage/ML community can we create two collaborative communities, the storage engineers and the storage data scientists?&lt;/li>
&lt;/ol>
&lt;p>In the ML/Deep Learning community, the large ImageNet benchmarks have spurred research in image recognition. Similarly, we would like to provide benchmarks for fostering storage research in ML-based per-IO latency prediction. Therefore, we present FlashNet, a reproducible data science platform for storage systems. To start a big task, we use I/O latency prediction as a case study. Thus, FlashNet has been built for I/O latency prediction tasks. With FlashNet, data engineers can collect the IO traces of various devices. The data scientists then can train the ML models to predict the IO latency based on those traces. All traces, results, and codes will be shared in the FlashNet training ground platform which utilizes Chameleon trovi for better reproducibility.&lt;/p>
&lt;p>In this project, we plan to improve the modularity of the FlashNet pipeline and develop the Chameleon trovi packages. We will also continue to improve the performance of our binary-class and multiclass classifiers and test them on the new production traces that we collected from SNIA IOTA public trace repository. Finally, we will optimize the deployment of our continual-learning mechanism and test it in a cloud system environment. To the best of our knowledge, we are building the world-first end-to-end data science platform for storage systems.&lt;/p>
&lt;h3 id="building-flashnet-platform">Building FlashNet Platform&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> Storage systems, reproducibility, machine learning, continual learning&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> C++, Python, PyTorch, Experienced with Machine Learning pipeline&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Medium&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/haryadi-s.-gunawi/">Haryadi S. Gunawi&lt;/a>&lt;/li>
&lt;li>&lt;strong>Contributor(s):&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/justin-shin/">Justin Shin&lt;/a>, &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/maharani-ayu-putri-irawan/">Maharani Ayu Putri Irawan&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Build an open-source platform to enable collaboration between storage and ML communities, specifically to provide a common platform for advancing data science research for storage systems. The platform will be able to reproduce and evaluate different ML models/architecture, dataset patterns, data preprocessing techniques, and various feature engineering strategies.&lt;/p>
&lt;p>Specific tasks:&lt;/p>
&lt;ul>
&lt;li>Work with mentors on understanding the context of the project.&lt;/li>
&lt;li>Reproduce the FlashNet evaluation results from prior works.&lt;/li>
&lt;li>Build and improve FlashNet components based on the existing blueprint.&lt;/li>
&lt;li>Collect and analyze the FlashNet evaluation results.&lt;/li>
&lt;/ul></description></item><item><title>Reproducible Analysis &amp; Models for Predicting Genomics Workflow Execution Time</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre23/uga/genomicswfmodels/</link><pubDate>Thu, 02 Feb 2023 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre23/uga/genomicswfmodels/</guid><description>&lt;p>A high-throughput workflow execution system is needed to continuously gain insights from th e increasingly abundant genomics data. However, genomics workflows often have long execution times (e.g., hours to days) due to their large input files. This characteristic presents many complexities when managing systems for genomics workflow execution. Furthermore, based on our observation of a large-scale genomics data processing platform, ~2% of genomics workflows exhibit a tail behavior which multiplied their execution time up to 15x of the median, resulting in weeks of execution.&lt;/p>
&lt;p>On the other hand, input files for genomic workflows often vary in quality due to differences in how they are collected. Prior works suggested that these quality differences can affect genomics workflow execution time. Yet, to the best of our knowledge, input quality has never been accounted for in the design of a high-throughput workflow execution system. Even worse, there does not appear to be a consensus on what constitutes ‘input quality,’ at least from a computer systems perspective.&lt;/p>
&lt;p>In this project, we seek to analyze a huge dataset from a large-scale genomics processing platform in order to gain insights on how ‘input quality’ affects genomic workflows’ execution times. Following that, we will build machine learning (ML) models for predicting workflow execution time, in particular those which exhibit tail behavior. We believe these insights and models can become the foundation for designing a novel tail-resilient genomics workflow execution system. Along the way, we will ensure that each step of our analysis is reproducible (e.g., in the form of Jupyter notebooks) and make all our ML models open-source (e.g., in the form of pre-trained models). We sincerely hope our work can offload some burdens commonly faced by operators of systems for genomics and, at the same time, benefit future researchers who work on the intersection of computer systems and genomics.&lt;/p>
&lt;h3 id="analyze-genomics-data-quality--build-exec-time-prediction-models">Analyze genomics data quality &amp;amp; build exec. time prediction models&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> genomics, data analysis, machine learning&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> Linux, Python, Matplotlib, Pandas/Numpy, any ML library&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Medium&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> 350 hours&lt;/li>
&lt;li>&lt;strong>Mentor(s):&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/in-kee-kim/">In Kee Kim&lt;/a>&lt;/li>
&lt;li>&lt;strong>Contributor(s):&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/charis-christopher-hulu/">Charis Christopher Hulu&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Analyze a large-scale trace of genomics workflow execution along with metrics from various genomics alignment tools (e.g., FastQC, Picard, and GATK metrics) and find features that
correlate the most with workflow execution time and its tail behavior. Then, based on the results, we will build ML models that accurately predict genomic workflows’ execution times.&lt;/p>
&lt;p>Specific tasks:&lt;/p>
&lt;ul>
&lt;li>Acquire basic understanding of genomics data processing &amp;amp; workflow execution (will be guided by the mentor)&lt;/li>
&lt;li>Reproduce past analysis &amp;amp; models built by prior members of the project&lt;/li>
&lt;li>Propose features from FastQC/Picard/GATK metrics that can be used as a predictor for execution time and tail behavior&lt;/li>
&lt;li>Write a brief analysis as to why those features might work&lt;/li>
&lt;li>Build ML models for predicting execution time&lt;/li>
&lt;li>Package the analysis in the form of Jupyter notebooks&lt;/li>
&lt;li>Package the models in a reloadable format (e.g., pickle)&lt;/li>
&lt;/ul></description></item><item><title>Reproducible Evaluation of Multi-level Erasure Coding</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre23/ornl/multilevelerasure/</link><pubDate>Thu, 02 Feb 2023 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre23/ornl/multilevelerasure/</guid><description>&lt;p>Massive storage systems rely heavily on erasure coding (EC) to protect data from drive failures and provide data durability. Existing storage systems mostly adopt single-level erasure coding (SLEC) to protect data, either performing EC at the network level or performing EC at the local level. However, both SLEC approaches have limitations, as network-only SLEC introduces heavy network traffic overhead, and local-only SLEC cannot tolerate rack failures.&lt;/p>
&lt;p>Accordingly, some data centers are starting to use multi-level erasure coding (MLEC), which is a hybrid approach performing EC at both the network level and the local level. However, prior EC research and evaluations mostly focused on SLEC, and it remains to be answered how MLEC is compared to SLEC in terms of durability, capacity overhead, encoding throughput, network traffic, and other overheads.&lt;/p>
&lt;p>Therefore, in this project we seek to build a platform to evaluate the durability and overheads of MLEC. The platform will allow us to evaluate dozens of EC strategies in many dimensions including recovery strategies, chunk placement choices, various parity schemes, etc. To the best of our knowledge, there is no other evaluation platform like what we propose here. We seek to make the platform open-source and the evaluation reproducible, allowing future researchers to benefit from it and conduct more research on MLEC.&lt;/p>
&lt;h3 id="building-a-platform-to-evaluate-mlec">Building a platform to evaluate MLEC&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> Storage systems, reproducibility, erasure coding, evaluation&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> Linux, C, Python&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Medium&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> 350 hours&lt;/li>
&lt;li>&lt;strong>Mentor(s):&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/john-bent/">John Bent&lt;/a> and &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/anjus-george/">Anjus George&lt;/a>&lt;/li>
&lt;li>&lt;strong>Contributor(s):&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/zhiyan-alex-wang/">Zhiyan &amp;quot;Alex&amp;quot; Wang&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Build a platform to evaluate the durability and overheads of MLEC. The platform will be able to evaluate different EC strategies in various dimensions including repair strategies, chunk placement choices, parity schemes, etc. Analyze the evaluation results.&lt;/p>
&lt;p>Specific tasks:&lt;/p>
&lt;ul>
&lt;li>Work with mentors on understanding the context of the project.&lt;/li>
&lt;li>Reproduce the SLEC evaluation results from prior SLEC evaluation tools&lt;/li>
&lt;li>Based on prior SLEC evaluation tools, build a platform to evaluate the durability and overheads of MLEC under various EC strategies&lt;/li>
&lt;li>Collect and analyze the MLEC evaluation results&lt;/li>
&lt;/ul></description></item><item><title>Automatic Cluster Performance Shifts Detection Toolkit</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre23/anl/perfdrift/</link><pubDate>Wed, 01 Feb 2023 10:15:56 -0700</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre23/anl/perfdrift/</guid><description>&lt;p>High-performance computing (HPC) clusters typically suffer from performance degradation over time. The heterogeneous nature of clusters and the inevitable defects in various infrastructure layers will result in a harder performance prediction inside. On the other hand, when software upgrades or any such events happen, we might also observe performance improvement or degradation even though nothing changes in the hardware. Due to these uncertainties, it is necessary to send early notification to administrators of changes in cluster performance in a specific time window to inform scheduling decisions and increase cluster utilization.&lt;/p>
&lt;p>We are targeting HPC clusters that cater to heterogeneous, compute, and I/O intensive workloads that range from scientific simulation to AI model training that have high degree of parallelization in their workloads. In this scenario, we plan to use the Darshan open-source toolkit (&lt;a href="https://github.com/darshan-hpc/darshan" target="_blank" rel="noopener">https://github.com/darshan-hpc/darshan&lt;/a>) as data collection or profiling tools to design our performance drift algorithms. Furthermore, we will possibly incorporate the distribution shift detection into Darshan, making it viable as a notification to the HPC system administrators.&lt;/p>
&lt;p>Our goal is to show the efficacy of our algorithm by plotting the profiling data that display specific time windows where the performance shifts happened after being processed by our algorithm. Finally, we will package all our profiling data and experiment scripts inside Jupyter notebook, especially Chameleon Trovi, to help others reproduce our experiments.&lt;/p>
&lt;p>Through this research, we seek to contribute the following:&lt;/p>
&lt;ul>
&lt;li>Designing an algorithm to detect performance shifts in HPC clusters that can be adapted for heterogeneous workloads&lt;/li>
&lt;li>Real-time detection of the performance shifts without introducing great overheads into the system&lt;/li>
&lt;li>Contribute to Darshan to be able to automatically detect performance changes while profiling the clusters.&lt;/li>
&lt;/ul>
&lt;h3 id="automatic-and-adaptive-performance-shifts-detection">Automatic and Adaptive Performance Shifts Detection&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> Statistical Machine Learning, Deep Learning, and High-Performance Computing (HPC)&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> C++, Python, Statistics, good to have: Machine Learning, Deep learning&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Moderate&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> Sandeep Madireddy (&lt;a href="https://www.anl.gov/profile/sandeep-r-madireddy" target="_blank" rel="noopener">https://www.anl.gov/profile/sandeep-r-madireddy&lt;/a>, &lt;a href="http://www.mcs.anl.gov/~smadireddy/" target="_blank" rel="noopener">http://www.mcs.anl.gov/~smadireddy/&lt;/a> ), Ray Andrew Sinurat (&lt;a href="https://rayandrew.me" target="_blank" rel="noopener">https://rayandrew.me&lt;/a>)&lt;/li>
&lt;li>&lt;strong>Contributor(s):&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/kangrui-wang/">Kangrui Wang&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>All in all, these are the specific tasks that the student should do:&lt;/p>
&lt;ul>
&lt;li>Collaborate and work with mentors to understand the goal of this project.&lt;/li>
&lt;li>Implement distribution shift detection in pure statistical or machine/deep learning&lt;/li>
&lt;li>Deploy the algorithm and try to see its efficacy in the clusters.&lt;/li>
&lt;li>Package this experiment to make it easier for others to reproduce&lt;/li>
&lt;/ul></description></item><item><title>OpenROAD - An Open-Source, Autonomous RTL-GDSII Flow for VLSI Designs (2023)</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre23/ucsd/openroad/</link><pubDate>Wed, 01 Feb 2023 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre23/ucsd/openroad/</guid><description>&lt;p>The &lt;a href="https://theopenroadproject.org" target="_blank" rel="noopener">OpenROAD&lt;/a> project is a non-profit, DARPA-funded and Google sponsored project committed to creating low-cost and innovative Electronic Design Automation (EDA) tools and flows for IC design. Our mission is to democratize IC design, break down barriers of cost and access and mitigate schedule risk through native and open source innovation and collaboration with ecosystem partners. &lt;a href="https://github.com/The-OpenROAD-Project" target="_blank" rel="noopener">OpenROAD&lt;/a> provides an autonomous, no-human-in-the-loop, 24-hour, RTL-GDSII flow for fast ASIC design exploration, QoR estimation and physical implementation for a range of technologies above 12 nm. We welcome a diverse community of designers, researchers, enthusiasts, software engineers and entrepreneurs to use and contribute to OpenROAD and make a far-reaching impact. OpenROAD has been used in &amp;gt; 600 tapeouts across a range of ASIC applications with a rapidly growing and diverse user community.&lt;/p>
&lt;h3 id="enhance-openroad-gui-flow-manager">Enhance OpenROAD GUI Flow Manager&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: &lt;code>GUI&lt;/code>, &lt;code>Visualization&lt;/code>, &lt;code>User Interfaces&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: C++, Qt&lt;/li>
&lt;li>&lt;strong>Difficulty&lt;/strong>: Medium&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong>: Medium or Large (175 or 350 hours)&lt;/li>
&lt;li>&lt;strong>Mentor&lt;/strong>: &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/matt-liberty/">Matt Liberty&lt;/a>, &lt;a href="mailto:ethanmoon@google.com">Ethan Mahintorabi&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Develop custom features for analysis and visualizations in the [OpenROAD GUI] (&lt;a href="https://openroad.readthedocs.io/en/latest/main/src/gui/README.html" target="_blank" rel="noopener">https://openroad.readthedocs.io/en/latest/main/src/gui/README.html&lt;/a>) to support native and third party flows. These include &lt;a href="https://github.com/The-OpenROAD-Project/OpenROAD-flow-scripts" target="_blank" rel="noopener">OpenROAD-flow-scripts&lt;/a>, &lt;a href="https://github.com/The-OpenROAD-Project/OpenLane" target="_blank" rel="noopener">OpenLane&lt;/a> and other third-party flows . Create documentation: commands, developer guide notes, tutorials to show GUI usage for supported flows.&lt;/p>
&lt;h3 id="profile-and-tune-openroad-flow-for-runtime-improvements">Profile and tune OpenROAD flow for Runtime improvements&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: &lt;code>OpenROAD-flow-scripts&lt;/code>, &lt;code>Flow Manager&lt;/code>, &lt;code>Runtime Optimization&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: Knowledge about Computational resource optimization, Cloud-based computation, Basic VLSI design and tools knowledge&lt;/li>
&lt;li>&lt;strong>Difficulty&lt;/strong>: Medium&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong>: Medium or Large (175 or 350 hours)&lt;/li>
&lt;li>&lt;strong>Mentor&lt;/strong>: &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/matt-liberty/">Matt Liberty&lt;/a>, &lt;a href="mailto:ethanmoon@google.com">Ethan Mahintorabi&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Test, analyze and develop verifiable and re-producible strategies to improve run times in &lt;a href="https://github.com/The-OpenROAD-Project/OpenROAD-flow-scripts" target="_blank" rel="noopener">OpenROAD-flow-scripts&lt;/a>. These include optimizations of computational resources over the cloud, tuning of algorithmic and design flow parameters. Create test plans using existing or new designs to show runtime improvements.&lt;/p>
&lt;h3 id="update-openroad-documentation-and-tutorials">Update OpenROAD Documentation and Tutorials&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: &lt;code>Documentation&lt;/code>, &lt;code>Tutorials&lt;/code>, &lt;code>VLSI design basics&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: Knowledge of EDA tools, basics of VLSI design flow, tcl, shell scripts, Documentation, Markdown&lt;/li>
&lt;li>&lt;strong>Difficulty&lt;/strong>: Medium&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong>: Medium or Large (175 or 350 hours)&lt;/li>
&lt;li>&lt;strong>Mentor&lt;/strong>: &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/indira-iyer/">Indira Iyer&lt;/a>, &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/vitor-bandeira/">Vitor Bandeira&lt;/a>&lt;/li>
&lt;li>&lt;strong>Contributor(s)&lt;/strong>: &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/jack-luar/">Jack Luar&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Review and update missing documentation and tutorials in &lt;a href="https://github.com/The-OpenROAD-Project/OpenROAD-flow-scripts" target="_blank" rel="noopener">OpenROAD-flow-scripts&lt;/a> for existing and new features. Here is an example Tutorial link: &lt;a href="https://openroad-flow-scripts.readthedocs.io/en/latest/tutorials/FlowTutorial.html" target="_blank" rel="noopener">https://openroad-flow-scripts.readthedocs.io/en/latest/tutorials/FlowTutorial.html&lt;/a> for reference.&lt;/p>
&lt;h3 id="lef-and-liberty-model-testing">LEF and Liberty Model Testing&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: &lt;code>Testing&lt;/code>, &lt;code>LEF&lt;/code>, &amp;lsquo;LIB&amp;rsquo;, &lt;code>VLSI design basics&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: Knowledge of EDA tools, basics of VLSI design, lef and lib model abstracts, tcl, shell scripts, Verilog, Layout&lt;/li>
&lt;li>&lt;strong>Difficulty&lt;/strong>: Medium&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong>: Medium or Large (175 or 350 hours)&lt;/li>
&lt;li>&lt;strong>Mentor&lt;/strong>: &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/matt-liberty/">Matt Liberty&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Test the accuracy of generated LIB and LEF models for signoff in &lt;a href="https://github.com/The-OpenROAD-Project/OpenROAD-flow-scripts" target="_blank" rel="noopener">OpenROAD-flow-scripts&lt;/a> for flat and hierarchical design flows. Build test cases to validate and add to the regression suite.&lt;/p></description></item><item><title>Teaching Computer Networks with Reproducible Research</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre23/nyu/edunet/</link><pubDate>Wed, 18 Jan 2023 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre23/nyu/edunet/</guid><description>&lt;p>Lead Mentor: &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/fraida-fund/">Fraida Fund&lt;/a>&lt;/p>
&lt;p>In the field of computer networks and wireless communication systems, the availability of open access networking and cloud computing testbeds (&lt;a href="https://portal.geni.net/" target="_blank" rel="noopener">GENI&lt;/a>, &lt;a href="https://cloudlab.us/" target="_blank" rel="noopener">CloudLab&lt;/a>, &lt;a href="https://chameleoncloud.org/" target="_blank" rel="noopener">Chameleon&lt;/a>, &lt;a href="https://fabric-testbed.net/" target="_blank" rel="noopener">FABRIC&lt;/a>, and others) has been transformative in promoting reproducible research &lt;em>and&lt;/em> in making high-quality experiential learning available to students and educators at a wide range of colleges and universities. This project seeks to unite research and education use of these testbeds by developing new ways of using reproducible research to teach computer networks and related topics.&lt;/p>
&lt;h3 id="bringing-foundational-results-into-the-classroom">Bringing foundational results into the classroom&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: Computer networks, reproducibility, education&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: Linux, writing&lt;/li>
&lt;li>&lt;strong>Difficulty&lt;/strong>: Medium&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong>: 350 hours&lt;/li>
&lt;li>&lt;strong>Mentor(s)&lt;/strong>: &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/fraida-fund/">Fraida Fund&lt;/a> and TBD&lt;/li>
&lt;/ul>
&lt;p>To make foundational results from computer networks more concrete, this project seeks to reproduce a selection of key results and package them for use as interactive classroom demonstrations. (An example of a &amp;ldquo;foundational&amp;rdquo; result might be the result from the 1980s that motivates congestion control by showing how &lt;a href="http://dx.doi.org/10.1016/0169-7552%2889%2990019-6" target="_blank" rel="noopener">congestion collapse occurs when the network is under heavy load&lt;/a>.) This involves:&lt;/p>
&lt;ul>
&lt;li>Reproducing the original results on an open-access testbed&lt;/li>
&lt;li>Packaging the materials for use as a classroom demo, with interactive elements&lt;/li>
&lt;li>Creating assessment questions and sample &amp;ldquo;solutions&amp;rdquo; related to the materials, that instructors may use in homework assignments or exams&lt;/li>
&lt;/ul>
&lt;h3 id="developing-a-classroom-competition-for-adaptive-video-delivery-policies">Developing a &amp;ldquo;classroom competition&amp;rdquo; for adaptive video delivery policies&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: Computer networks, adaptive video, reproducibility, education&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: Linux, Python, writing&lt;/li>
&lt;li>&lt;strong>Difficulty&lt;/strong>: Medium&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong>: 350 hours&lt;/li>
&lt;li>&lt;strong>Mentor(s)&lt;/strong>: &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/fraida-fund/">Fraida Fund&lt;/a> and TBD&lt;/li>
&lt;li>&lt;strong>Contributor(s)&lt;/strong>: &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/srishti-jaiswal/">Srishti Jaiswal&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>A carefully designed competition can be a fun and exciting way for students to challenge themselves and gain &amp;ldquo;ownership&amp;rdquo; of a new topic. This projects builds on an existing open source &lt;a href="https://witestlab.poly.edu/blog/adaptive-video-reproducing/" target="_blank" rel="noopener">reproducible result&lt;/a> for adaptive video delivery, and will challenge students to extend this work and design their own adaptive video policies for head-to-head competition against their classmates. This includes:&lt;/p>
&lt;ul>
&lt;li>Packaging the result to make it easier for students to reproduce and then build on the original work&lt;/li>
&lt;li>Implementing other adaptive video policies from the literature, so that students can use them as a baseline&lt;/li>
&lt;li>Developing different network settings (using live link traces and emulated link patterns) in which student submissions may be evaluated&lt;/li>
&lt;li>Developing an evaluation framework for scoring student submissions on different criteria and in different network settings, and making the results available in a leaderboard format&lt;/li>
&lt;/ul></description></item><item><title>Using Reproducibility in Machine Learning Education</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre23/nyu/eduml/</link><pubDate>Wed, 18 Jan 2023 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre23/nyu/eduml/</guid><description>&lt;p>Lead Mentor: &lt;a href="mailto:ffund@nyu.edu">Fraida Fund&lt;/a>&lt;/p>
&lt;p>The computer science and engineering classroom is as essential part of the reproducibility &amp;ldquo;ecosystem&amp;rdquo; - because of broad reach and potential for big impact, and because for many students, the classroom is their first exposure to research in their field. For machine learning in particular, reproducibility is an important element of the research culture, and can be a valuable part of any introductory or advanced courses in the field. These projects will develop highly interactive open educational resources, that may be adopted by instructors of graduate or undergraduate machine learning courses to incorporate more instruction about reproducibility and reproducible research.&lt;/p>
&lt;h3 id="introducing-levels-of-reproduction-and-replication-in-ml">Introducing &amp;ldquo;levels&amp;rdquo; of reproduction and replication in ML&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: Machine learning, reproducibility, education&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: Python, machine learning, writing&lt;/li>
&lt;li>&lt;strong>Difficulty&lt;/strong>: Medium&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong>: 350 hours&lt;/li>
&lt;li>&lt;strong>Mentor(s)&lt;/strong>: &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/fraida-fund/">Fraida Fund&lt;/a> and TBD&lt;/li>
&lt;li>&lt;strong>Contributor(s)&lt;/strong>: &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/mohamed-saeed/">Mohamed Saeed&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>In machine learning, replicating a published result to confirm the validity of the experimental results and the broader conclusions of the paper can take several forms, with increasing levels of effort:&lt;/p>
&lt;ul>
&lt;li>using authors&amp;rsquo; code and pre-trained weights, run the model on the same benchmarks as the original paper&lt;/li>
&lt;li>training a model using authors&amp;rsquo; code and published hyperparameters,&lt;/li>
&lt;li>training a model using authors&amp;rsquo; code and a new hyperparamter search,&lt;/li>
&lt;li>validating the authors&amp;rsquo; code e.g. with unit tests, in addition to training,&lt;/li>
&lt;li>re-implementing the model,&lt;/li>
&lt;li>designing additional experiments to validate that the suggested mechanism is in fact responsible for the result,&lt;/li>
&lt;li>and more.&lt;/li>
&lt;/ul>
&lt;p>This project will develop interactive materials (using one or more exemplar published results) to illustrate and to highlight relevant aspects and pitfalls of each of these &amp;ldquo;levels&amp;rdquo; of reproduction and replication.&lt;/p>
&lt;h3 id="packaging-existing-reproducible-results-for-the-ml-classroom">Packaging existing reproducible results for the ML classroom&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: Machine learning, reproducibility, education&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: Python, machine learning, writing&lt;/li>
&lt;li>&lt;strong>Difficulty&lt;/strong>: Medium&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong>: 350 hours&lt;/li>
&lt;li>&lt;strong>Mentor(s)&lt;/strong>: &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/fraida-fund/">Fraida Fund&lt;/a> and TBD&lt;/li>
&lt;li>&lt;strong>Contribuor(s)&lt;/strong>: &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/shekhar/">Shekhar&lt;/a>, &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/jonathan-edwin/">Jonathan Edwin&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>The goal is to make it easier for instructors to expose students to state-of-the-art research in the classroom. This project will work with an existing set of recent reproducible results in machine learning, and will package them for easier consumption by students and more effective use in the classroom. This may include, but is not necessarily limited to:&lt;/p>
&lt;ul>
&lt;li>Re-validating the result and re-packaging along with computational environment on an open access testbed&lt;/li>
&lt;li>Creating tutorial material around the result, including interactive visualizations to demonstrate key elements of the work&lt;/li>
&lt;li>Creating one-click demos for applying the model/technique to a new test sample&lt;/li>
&lt;li>Curating test samples to highlight important advantages and limitations of the result&lt;/li>
&lt;li>Creating assessment questions and sample &amp;ldquo;solutions&amp;rdquo; that instructors may use to &amp;ldquo;assign&amp;rdquo; the work to students&lt;/li>
&lt;/ul></description></item><item><title>Public Artifact Data and Visualization</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre23/intel/artifactviz/</link><pubDate>Mon, 09 Jan 2023 10:15:56 -0700</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre23/intel/artifactviz/</guid><description>&lt;p>Reproducibility and Artifact Evaluation efforts have focused on reproducing the results, but not necessarily on storing, visualizing and making the results accessible. This set of projects builds the initial building blocks to log, capture, and visualize experiments.&lt;/p>
&lt;h3 id="experiment-log">Experiment Log&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> Provide tools to log experiments&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Simple&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Medium or large (175 or 350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/anjo-vahldiek-oberwagner/">Anjo Vahldiek-Oberwagner&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Develop a client and server side tool to start/stop an experiment, timestamp the experiment. Document each iteration of the experiment and create a database to visualize the log of experiments.&lt;/p>
&lt;h3 id="capture-hwsw-state--continuous-monitoring">Capture HW/SW state &amp;amp; continuous monitoring&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> Record initial state&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Medium&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Medium or large (175 or 350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/anjo-vahldiek-oberwagner/">Anjo Vahldiek-Oberwagner&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Provide simple tools to gather the initial state of each experimental machine and its connected devices, configurations, software versions, &amp;hellip; Upload into the experiment log database and visualize the recorded data. Ideally, provide diff function between experimental runs.&lt;/p>
&lt;p>In a second step, monitor the machine’s state during the execution. This includes, network, memory, CPU, general OS statistics.&lt;/p>
&lt;h3 id="record-and-visualize-experimental-results">Record and visualize experimental results&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> Record results in various formats and visualize them&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Hard&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Medium or large (175 or 350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/anjo-vahldiek-oberwagner/">Anjo Vahldiek-Oberwagner&lt;/a>&lt;/li>
&lt;li>&lt;strong>Contributor(s):&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/jiayuan-zhu/">Jiayuan Zhu&lt;/a>, &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/krishna-madhwani/">Krishna Madhwani&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Description: Experiments generate results in various formats (e.g., CSV, json, text files, …). The goal of this project is to provide tools to extract common formats, connect the results to the experiment log and visualize them. Ideally, allowing to compare different experimental runs. Initially, the project could dump their results into a Prometheus instance (&lt;a href="https://prometheus.io/" target="_blank" rel="noopener">https://prometheus.io/&lt;/a>) which would later become available for everyone to explore the data.&lt;/p></description></item><item><title>Polyphorm / PolyPhy</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre23/ucsc/polyphy/</link><pubDate>Thu, 15 Dec 2022 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre23/ucsc/polyphy/</guid><description>&lt;p>&lt;a href="https://github.com/PolyPhyHub/PolyPhy" target="_blank" rel="noopener">PolyPhy&lt;/a> is a GPU oriented agent-based system for reconstructing and visualizing &lt;em>optimal transport networks&lt;/em> defined over sparse data. Rooted in astronomy and inspired by nature, we have used an early prototype called &lt;a href="https://github.com/CreativeCodingLab/Polyphorm" target="_blank" rel="noopener">Polyphorm&lt;/a> to reconstruct the &lt;a href="https://youtu.be/5ILwq5OFuwY" target="_blank" rel="noopener">Cosmic web&lt;/a> structure, but also to discover network-like patterns in natural language data. You can see an instructive overview of PolyPhy in our &lt;a href="https://elek.pub/workshop_cross2022.html" target="_blank" rel="noopener">workshop&lt;/a> and more details about our research &lt;a href="https://elek.pub/projects/Rhizome-Cosmology" target="_blank" rel="noopener">here&lt;/a>.&lt;/p>
&lt;p>Under the hood, PolyPhy uses a richer 3D scalar field representation of the reconstructed network, instead of a typical discrete representation like a graph or a mesh. The ultimate purpose of PolyPhy is to become a toolkit for a range of specialists across different disciplines: astronomers, neuroscientists, data scientists and even artists and designers. PolyPhy aspires to be a tool for discovering connections between different disciplines by creating quantitatively comparable structural analytics.&lt;/p>
&lt;h3 id="polyphy-infrastructure-engineering-and-practices">PolyPhy infrastructure engineering and practices&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> &lt;code>DevOps&lt;/code> &lt;code>Code Refactoring&lt;/code> &lt;code>CI/CD&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> fluidity in Python, experience with OOP, experience with building and packaging libraries, understanding GitHub and its tools ecosystem&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Challenging&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> 350+ hours&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/oskar-elek/">Oskar Elek&lt;/a>, &lt;a href="mailto:anishagoel14@gmail.com">Anisha Goel&lt;/a>&lt;/li>
&lt;li>&lt;strong>Contributor(s):&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/prashant-jha/">Prashant Jha&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Your responsibility in this project will be developing new infrastructure of the PolyPhy project as well as maintaining the existing &lt;a href="https://github.com/PolyPhyHub/" target="_blank" rel="noopener">codebases&lt;/a>. This is a multifaceted role that will require coordination with the team and active approach to understanding the technical needs of the community.&lt;/p>
&lt;p>&lt;strong>Specific tasks:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>Work with the technical lead to develop effective interfaces for PolyPhy, providing access to its functionality on the level of both Python/Jupyter code and the command line.&lt;/li>
&lt;li>Maintain the existing &lt;a href="https://github.com/PolyPhyHub/PolyPhy" target="_blank" rel="noopener">codebase&lt;/a> and configure it according to the team&amp;rsquo;s needs.&lt;/li>
&lt;li>Develop and extend the current CI/CD functionality and related code metrics.&lt;/li>
&lt;li>Document the best practices related to the above.&lt;/li>
&lt;/ul>
&lt;h3 id="write-polyphys-technical-story-and-content">Write PolyPhy&amp;rsquo;s technical story and content&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> &lt;code>Writing&lt;/code> &lt;code>Documentation&lt;/code> &lt;code>Storytelling&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> experienced writing structured text, well read, technical or scientific education, webdev basics (preferably NodeJS)&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Moderate&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> 350 hours&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/oskar-elek/">Oskar Elek&lt;/a>, &lt;a href="mailto:ez@nmsu.edu">Ezra Huscher&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Integral to PolyPhy&amp;rsquo;s presentation is a &amp;ldquo;story&amp;rdquo; - a narrative understanding - that the users and the project contributors can relate to. Your responsibility will be to develop the written part of that understanding, as well as major portions of technical documentation that match it.&lt;/p>
&lt;p>&lt;strong>Specific tasks:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>Work with mentors on understanding the context of the project.&lt;/li>
&lt;li>Write and edit diverse pages of the project &lt;a href="https://www.polyphy.io" target="_blank" rel="noopener">website&lt;/a>.&lt;/li>
&lt;li>Work with mentors to improve project&amp;rsquo;s written community practices (diversity, communication).&lt;/li>
&lt;li>Write and edit narrative and explanatory parts of PolyPhy&amp;rsquo;s documentation.&lt;/li>
&lt;li>Create tutorials that present core functionality of the toolkit.&lt;/li>
&lt;/ul>
&lt;h3 id="community-engagement-and-management">Community engagement and management&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> &lt;code>Community Management&lt;/code> &lt;code>Social Media&lt;/code> &lt;code>Networking&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> documented experience with current social media landscape, social and well spoken, ability to communicate technical concepts&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Moderate&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> 175 or 350 hours&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/oskar-elek/">Oskar Elek&lt;/a>, &lt;a href="mailto:ez@nmsu.edu">Ezra Huscher&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Your responsibility will be to build and engage the community around PolyPhy. This includes its standing team and stakeholders, current expert users, potential adopters as well as the general public. The scope (size) of the project depends on the level of commitment during and beyond the Summer and is negotiable upfront.&lt;/p>
&lt;p>&lt;strong>Specific tasks:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>Manage the team&amp;rsquo;s communication channels (Slack, Zoom, email) and maintain active presence therein.&lt;/li>
&lt;li>Develop social media presence for PolyPhy on Twitter, LinkedIn and other selected social media platforms.&lt;/li>
&lt;li>Manage and extend the online presence for the project, including its &lt;a href="https://polyphy.io" target="_blank" rel="noopener">website&lt;/a>, mailing list, and other applicable outreach activities.&lt;/li>
&lt;li>Research and engage with new communities that would benefit from PolyPhy, both as its expert users and contributors.&lt;/li>
&lt;/ul></description></item><item><title>Adaptive Load Balancers for Low-latency Multi-hop Networks</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre22/ucsc/adaptiveload/</link><pubDate>Mon, 07 Nov 2022 10:15:56 -0700</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre22/ucsc/adaptiveload/</guid><description>&lt;p>This project aims at designing efficient, adaptive link level load balancers for networks that handle different kinds of traffic, in particular networks where flows are heterogeneous in terms of their round trip times. Geo distributed data centers are one such example. With the large-scale deployments of 5G in the near future, there will be even more applications, including more bulk transfers of videos and photos, augmented reality applications and virtual reality applications which take advantage of 5G’s low latency service. With the development and discussion about Web3.0 and Metaverse, the network workloads across data centers are only going to get more varied and challenging. All these add to heavy, bulk of data being sent to the data centers and over the backbone network. These traffic have varying quality of service requirements, like low latency, high throughput and high definition video streaming. Wide area network (WAN) flows are typically data heavy tasks that consist of backup data taken for a particular data center. The interaction of the data center and WAN traffic creates a very interesting scenario with its own challenges to be addressed. WAN and data center traffic are characterized by differences in the link utilizations and round trip times. Based on readings and literature review, there seems to be very little work on load balancers that address the interaction of data center and WAN traffic. This in turn motivates the need for designing load balancers that take into account both WAN and data center traffic in order to create high performance for more realistic scenarios. This work proposes a load balancer that is adaptive to the kind of traffic it encounters by learning from the network conditions and then predicting the optimal route for a given flow.&lt;/p>
&lt;p>Through this research we seek to contribute the following :&lt;/p>
&lt;ul>
&lt;li>Designing a load balancer, that is adaptive to datacenter and WAN traffic, and in general can be adapted to varied traffic conditions&lt;/li>
&lt;li>Real time learning of the network setup and predicting optimal paths&lt;/li>
&lt;li>Low latency, high throughput and increased network utilization deliverables&lt;/li>
&lt;/ul>
&lt;h3 id="adaptive-dynamic-load-balancing-for-data-center-and-wan-traffic">Adaptive, Dynamic Load Balancing for data center and WAN traffic&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> &amp;lsquo;data center networking&amp;rsquo;, TCP/IP stack&amp;rsquo;, &amp;lsquo;congestion control&amp;rsquo;, &amp;rsquo;load balancing&amp;rsquo;&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> C++, python, linux ; experience with network simulators would be helpful&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> moderate/ challenging&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong>: Medium or Large (175 or 350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="mailto:katia@soe.ucsc.edu"> Katia Obraczka&lt;/a>,&lt;a href="mailto:akabbani@gmail.com">Abdul Kabbani&lt;/a>, &lt;a href="mailto:lakrishn@ucsc.edu">Lakshmi Krishnaswamy&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Specific tasks:&lt;/p>
&lt;ul>
&lt;li>Understanding the OMNeT++ network simulator and creating simple networks and data center topologies to understand the simulation environment.&lt;/li>
&lt;li>Implementing existing load balancers on OMNeT++ and exploring the effect of different features of the load balancers with data center traffic and WAN traffic.&lt;/li>
&lt;li>Finding and testing out WAN specific traffic that may exist, like video streaming traffic, large database queries etc.&lt;/li>
&lt;li>Working with the mentors on developing a learning-based load balancer framework that learns from past sample traffic, network conditions, to adapt dynamically to current network conditions.&lt;/li>
&lt;/ul></description></item><item><title>Apache AsterixDB</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre22/ucr/asterixdb/</link><pubDate>Mon, 07 Nov 2022 10:15:56 -0700</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre22/ucr/asterixdb/</guid><description>&lt;p>&lt;a href="http://asterixdb.apache.org/" target="_blank" rel="noopener">AsterixDB&lt;/a> is an open source parallel big-data management system. AsterixDB is a well-established Apache project that has beedddn active in research for more than 10 years. It provides a flexible data model that supports modern NoSQL applications with a powerful query processor that can scale to billions of records and terabytes of data. Users can interact with AsterixDB through a power and easy to use declarative query language, SQL++, which provides a rich set of data types including timestamps, time intervals, text, and geospatial, in addition to traditional numerical and Boolean data types.&lt;/p>
&lt;h3 id="geospatial-data-science-on-asterixdb">Geospatial Data Science on AsterixDB&lt;/h3>
&lt;ul>
&lt;li>&lt;em>Topics&lt;/em>: Data science, SQL++, documentation&lt;/li>
&lt;li>&lt;em>Skills&lt;/em>: SQL, Writing, Spreadsheets&lt;/li>
&lt;li>&lt;em>Difficulty&lt;/em>: Medium&lt;/li>
&lt;li>&lt;em>Size&lt;/em>: Medium or Large (175 or 350 hours)&lt;/li>
&lt;li>&lt;em>Mentors&lt;/em>: &lt;a href="mailto:eldawy@ucr.edu">Ahmed Eldawy&lt;/a>, &lt;a href="mailto:asevi006@ucr.edu">Akil Sevim&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Build a data science project using AsterixDB that analyzes geospatial data among other dimensions. Use &lt;a href="https://star.cs.ucr.edu/?Chicago%20Crimes#center=41.8313,-87.6830&amp;amp;zoom=11" target="_blank" rel="noopener">Chicago Crimes&lt;/a> as the main dataset and combine with other datasets including &lt;a href="https://star.cs.ucr.edu/?osm21/pois#center=41.8313,-87.6830&amp;amp;zoom=11" target="_blank" rel="noopener">points of interests&lt;/a> &lt;a href="https://star.cs.ucr.edu/?TIGER2018/ZCTA5#center=41.8313,-87.6830&amp;amp;zoom=11" target="_blank" rel="noopener">ZIP Code boundaries&lt;/a>. During this project, we will answer interesting questions about the data and visualize the results such as:&lt;/p>
&lt;ul>
&lt;li>What is the most common crime type in a specific date or over the weekends?&lt;/li>
&lt;li>Where do most of the arrests happen?&lt;/li>
&lt;li>How are the crime rates change over time for different regions?&lt;/li>
&lt;/ul>
&lt;h4 id="the-goals-of-this-project-are">The goals of this project are:&lt;/h4>
&lt;ul>
&lt;li>Understand how to build a scalable data science project using AsterixDB.&lt;/li>
&lt;li>Translate common questions to SQL queries and run them on large data.&lt;/li>
&lt;li>Learn how to visualize the results of queries and present them.&lt;/li>
&lt;li>Write detailed documentation about the process of building a data science application in AsterixDB.&lt;/li>
&lt;li>Improve the documentation of AsterixDB while working in the project to improve the experience for future users.&lt;/li>
&lt;/ul>
&lt;h4 id="machine-learning-integration">Machine Learning Integration&lt;/h4>
&lt;p>As a bonus task, and depending on the progress of the project, we can explore the integration of machine learning with AsterixDB through Python UDFs. We will utilize the AsterixDB Python integration through &lt;a href="https://asterixdb.apache.org/docs/0.9.7/udf.html" target="_blank" rel="noopener">user-defined functions&lt;/a> to connect AsterixDB backend with &lt;a href="https://scikit-learn.org/stable/index.html" target="_blank" rel="noopener">scikit-learn&lt;/a> to build some unsupervised and supervised models for the data. For example, we can cluster the crimes based on their location and other attributes to find interesting patterns or hotspots.&lt;/p></description></item><item><title>CephFS</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre22/ucsc/cephfs/</link><pubDate>Mon, 07 Nov 2022 10:15:56 -0700</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre22/ucsc/cephfs/</guid><description>&lt;p>&lt;a href="https://docs.ceph.com/en/latest/cephfs/" target="_blank" rel="noopener">CephFS&lt;/a> is a distributed file system on top of &lt;a href="https://ceph.io" target="_blank" rel="noopener">Ceph&lt;/a>. It is implemented as a distributed metadata service (MDS) that uses dynamic subtree balancing to trade parallelism for locality during a continually changing workloads. Clients that mount a CephFS file system connect to the MDS and acquire capabilities as they traverse the file namespace. Capabilities not only convey metadata but can also implement strong consistency semantics by granting and revoking the ability of clients to cache data locally.&lt;/p>
&lt;h3 id="cephfs-namespace-traversal-offloading">CephFS namespace traversal offloading&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: &lt;code>Ceph&lt;/code>, &lt;code>filesystems&lt;/code>, &lt;code>metadata&lt;/code>, &lt;code>programmable storage&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: C++, Ceph / MDS&lt;/li>
&lt;li>&lt;strong>Difficulty&lt;/strong>: Medium&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong>: Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentor&lt;/strong>: &lt;a href="mailto:carlosm@ucsc.edu">Carlos Maltzahn&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>The frequency of metadata service (MDS) requests relative to the amount of data accessed can severely affect the performance of distributed file systems like CephFS, especially for workloads that randomly access a large number of small files as is commonly the case for machine learning workloads: they purposefully randomize access for training and evaluation to prevent overfitting. The datasets of these workloads are read-only and therefore do not require strong coherence mechanisms that metadata services provide by default.&lt;/p>
&lt;p>The key idea of this project is to reduce the frequency of MDS requests by offloading namespace traversal, i.e. the need to open a directory, list its entries, open each subdirectory, etc. Each of these operations usually require a separate MDS request. Offloading namespace traversal refers to a client’s ability to request the metadata (and associated read-only capabilities) of an entire subtree with one request, thereby offloading the traversal work for tree discovery to the MDS.&lt;/p>
&lt;p>Once the basic functionality is implemented, this project can be expanded to address optimization opportunities, e.g. describing regular tree structures as a closed form expression in the tree’s root, shortcutting tree discovery.&lt;/p></description></item><item><title>DirtViz (2022)</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre22/ucsc/dirtviz/</link><pubDate>Mon, 07 Nov 2022 10:15:56 -0700</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre22/ucsc/dirtviz/</guid><description>&lt;p>DirtViz is a project to visualize data collected from
sensors deployed in sensor networks. We have deployed a number of
sensors measuring qualities like soil moisture, temperature, current
and voltage in outdoor settings. This project involves extending (or
replacing) our existing plotting scripts to create a fully-feledged
dataviz tool tailored to the types of data collected from embedded
systems sensor networks.&lt;/p>
&lt;h3 id="visualize-sensor-data">Visualize Sensor Data&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: &lt;code>Data Visualization&lt;/code>, &lt;code>Analytics&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: javascript, python, bash, webservers, git, embedded systems&lt;/li>
&lt;li>&lt;strong>Difficulty&lt;/strong>: Easy/Moderate&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong> 175 hours&lt;/li>
&lt;li>&lt;strong>Mentor&lt;/strong>: &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/colleen-josephson/">Colleen Josephson&lt;/a>&lt;/li>
&lt;/ul>
&lt;ul>
&lt;li>Develop set of visualization tools (ideally web based) that easily allows users to zoom in on date ranges, change axes, etc.&lt;/li>
&lt;li>Document the tool thoroughly for future maintenance&lt;/li>
&lt;li>If interested, we are also interested in investigating correlations between different data streams&lt;/li>
&lt;/ul></description></item><item><title>Eusocial Storage Devices</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre22/ucsc/eusocial/</link><pubDate>Mon, 07 Nov 2022 10:15:56 -0700</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre22/ucsc/eusocial/</guid><description>&lt;p>As storage devices get faster, data management tasks rob the host of CPU cycles and main memory bandwidth. The &lt;a href="https://cross.ucsc.edu/projects/eusocialpage.html" target="_blank" rel="noopener">Eusocial project&lt;/a> aims to create a new interface to storage devices that can leverage existing and new CPU and main memory resources to take over data management tasks like availability, recovery, and migrations. The project refers to these storage devices as “eusocial” because we are inspired by eusocial insects like ants, termites, and bees, which as individuals are primitive but collectively accomplish amazing things.&lt;/p>
&lt;h3 id="dynamic-function-injection-for-rocksdb">Dynamic function injection for RocksDB&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Skills:&lt;/strong> C/C++, Java&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Challenging&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong> 175 or 350 hours&lt;/li>
&lt;li>&lt;strong>Mentor:&lt;/strong> &lt;a href="mailto:jliu120@ucsc.edu">Jianshen Liu&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Recent research reveals that the compaction process in RocksDB can be altered to optimize future data access by changing the data layout in compaction levels. The benefit of this approach can be extended to different data layout optimization based on application access patterns and requirements. In this project, we want to create an interface that would allow users to dynamically inject layout optimization functions to RockDB, using containerization technologies such as Webassembly.&lt;/p>
&lt;ul>
&lt;li>Reference: Saxena, Hemant, et al. &amp;ldquo;Real-Time LSM-Trees for HTAP Workloads.&amp;rdquo; arXiv preprint arXiv:2101.06801 (2021).&lt;/li>
&lt;/ul>
&lt;h3 id="demonstrating-a-composable-storage-system-accelerated-by-memory-semantic-technologies">Demonstrating a composable storage system accelerated by memory semantic technologies&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Skills:&lt;/strong> C/C++, Bash, Python, System architecture, Network fabrics&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Challenging&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong> 350 hours&lt;/li>
&lt;li>&lt;strong>Mentor:&lt;/strong> &lt;a href="mailto:jliu120@ucsc.edu">Jianshen Liu&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Since the last decade, the slowing down in the performance improvement of general-purpose processors is driving the system architecture to be increasingly heterogeneous. We have seen the kinds of domain-specific accelerator hardware (e.g., FPAG, SmartNIC, TPU, GPU) are growing to take over many different jobs from the general-purpose processors. On the other hand, the network and storage device performance have been tremendously improved with a trajectory much outweighed than that of processors. With this trend, a natural thought to continuously scale the storage system performance economically is to efficiently utilize and share different sources from different nodes over the network. There already exist different resource sharing protocols like CCIX, CXL, and GEN-Z. Among these GEN-Z is the most interesting because, unlike RDMA, it enables remote memory accessing without exposing details to applications (i.e., not application changes). Therefore, it would be interesting to see how/whether these technologies can help improve the performance of storage systems, and to what extent. This project would require building a demo system that uses some of these technologies (especially GEN-Z) and run selected applications/workloads to better understand the benefits.&lt;/p>
&lt;ul>
&lt;li>References: Gen-Z: An Open Memory Fabric for Future Data Processing Needs: &lt;a href="https://www.youtube.com/watch?v=JLb9nojNS8E" target="_blank" rel="noopener">https://www.youtube.com/watch?v=JLb9nojNS8E&lt;/a>, Pekon Gupta, SMART Modular; Gen-Z subsystem for Linux, &lt;a href="https://github.com/linux-genz" target="_blank" rel="noopener">https://github.com/linux-genz&lt;/a>&lt;/li>
&lt;/ul>
&lt;h3 id="when-will-rotational-media-users-abandon-sata-and-converge-to-nvme">When will Rotational Media Users abandon SATA and converge to NVMe?&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Skills:&lt;/strong> Entrepreneurial mind, interest in researching high technology markets&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Medium&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> 350 hours&lt;/li>
&lt;li>&lt;strong>Mentor:&lt;/strong> &lt;a href="mailto:carlosm@ucsc.edu">Carlos Maltzahn&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Goal:&lt;/strong> Determine the benefits in particular market verticals such as genomics and health care to converge the storage stack in data center computer systems to the NVMe device interface, even when devices include rotational media (aka disk drives). The key question: “When do people abandon SATA and SAS and converge to NVMe?”&lt;/p>
&lt;p>&lt;strong>Background:&lt;/strong> NVMe is a widely used device interface for fast storage devices such as flash that behave much more like random access memory than the traditional rotational media. Rotational media is accessed mostly via SATA and SAS which has served the industry well for close to two decades. SATA in particular is much cheaper than NVMe. Now that NVMe is widely available and quickly advancing in functionality, an interesting question is whether there is a market for rotational media devices with NVMe interfaces, converging the storage stack to only one logical device interface, thereby enabling a common ecosystem and more efficient connectivity from multiple processes to storage devices.&lt;/p>
&lt;p>The NVMe 2.0 specification, which came out last year, has been restructured to support the increasingly diverse NVMe device environment (including rotational media). The extensibility of 2.0 encourages enhancements of independent command sets such as Zoned Namespaces (ZNS) and Key Value (NVMe-KV) while supporting transport protocols for NVMe over Fabrics (NVMe-oF). A lot of creative energy is now focused on advancing NVMe while SATA has not changed in 16 years. Having all storage devices connect the same way not only frees up space on motherboards but also enables new ways to manage drives, for example via NVMe-oF that allows drives to be networked without additional abstraction layers.&lt;/p>
&lt;p>&lt;strong>Suggested Project Structure:&lt;/strong> This is really just a suggestion for a starting point. As research progresses, a better structure might emerge.&lt;/p>
&lt;ol>
&lt;li>Convergence of software stack: seamless integration between rotational media and hot storage&lt;/li>
&lt;/ol>
&lt;ul>
&lt;li>Direct tiering: one unified interface to place data among fast and slow devices on the same NVMe fabric depending on whether the data is hot or cold.&lt;/li>
&lt;/ul>
&lt;ol start="2">
&lt;li>Computational storage:&lt;/li>
&lt;/ol>
&lt;ul>
&lt;li>What are the architectures of computational NVMe devices? For example, offloading compute to an FPGA vs an onboard processor in a disk drive?&lt;/li>
&lt;li>Do market verticals such as genomics and health care for one over the other? When do people abandon SATA and converge to NVMe?&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Project tasks:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>Review current literature&lt;/li>
&lt;li>Survey what the industry is doing&lt;/li>
&lt;li>Join weekly meetings to discuss findings with Ph.D. students, experienced industry veterans, and faculty (Thursday’s 2-3pm, can be adjusted if necessary)&lt;/li>
&lt;li>Product is a slide deck with lots of pictures&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Interesting links:&lt;/strong>&lt;br>
&lt;a href="https://www.opencompute.org/wiki/Storage/NVMeHDD" target="_blank" rel="noopener">https://www.opencompute.org/wiki/Storage/NVMeHDD&lt;/a>&lt;br>
&lt;a href="https://2021ocpglobal.fnvirtual.app/a/event/1714" target="_blank" rel="noopener">https://2021ocpglobal.fnvirtual.app/a/event/1714&lt;/a> (video and slides, requires $0 registration)&lt;br>
&lt;a href="https://www.storagereview.com/news/nvme-hdd-edges-closer-to-reality" target="_blank" rel="noopener">https://www.storagereview.com/news/nvme-hdd-edges-closer-to-reality&lt;/a>&lt;br>
&lt;a href="https://www.tomshardware.com/news/seagate-demonstrates-hdd-with-pcie-nvme-interface" target="_blank" rel="noopener">https://www.tomshardware.com/news/seagate-demonstrates-hdd-with-pcie-nvme-interface&lt;/a>&lt;br>
&lt;a href="https://nvmexpress.org/everything-you-need-to-know-about-the-nvme-2-0-specifications-and-new-technical-proposals/" target="_blank" rel="noopener">https://nvmexpress.org/everything-you-need-to-know-about-the-nvme-2-0-specifications-and-new-technical-proposals/&lt;/a>&lt;br>
&lt;a href="https://www.tomshardware.com/news/nvme-2-0-supports-hard-disk-drives" target="_blank" rel="noopener">https://www.tomshardware.com/news/nvme-2-0-supports-hard-disk-drives&lt;/a>&lt;/p></description></item><item><title>FasTensor</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre22/lbl/fastensor/</link><pubDate>Mon, 07 Nov 2022 10:15:56 -0700</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre22/lbl/fastensor/</guid><description>&lt;p>&lt;a href="https://sdm.lbl.gov/fastensor/" target="_blank" rel="noopener">FasTensor&lt;/a> is a parallel execution engine for user-defined functions on multidimensional arrays. The user-defined functions follow the stencil metaphor used for scientific computing and is effective for expressing a wide range of computations for data analyses, including common aggregation operations from database management systems and advanced machine learning pipelines. FasTensor execution engine exploits the structural-locality in the multidimensional arrays to automate data management operations such as file I/O, data partitioning, communication, parallel execution, and so on.&lt;/p>
&lt;h3 id="continuous-integration">Continuous Integration&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: &lt;code>Data Management&lt;/code>, &lt;code>Analytics&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: C++, github&lt;/li>
&lt;li>&lt;strong>Difficulty&lt;/strong>: Medium&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong>: Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentor&lt;/strong>: &lt;a href="mailto:kwu@lbl.gov">John Wu&lt;/a>, &lt;a href="mailto:dbin@lbl.gov">Bin Dong&lt;/a>, &lt;a href="mailto:sbyna@lbl.gov">Suren Byna&lt;/a>&lt;/li>
&lt;/ul>
&lt;ul>
&lt;li>Develop a test suite for the public API of FasTensor&lt;/li>
&lt;li>Automate execution of the test suite&lt;/li>
&lt;li>Document the continuous integration process&lt;/li>
&lt;li>Develop performance testing suite&lt;/li>
&lt;/ul></description></item><item><title>FasTensor</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre23/lbl/fastensor/</link><pubDate>Mon, 07 Nov 2022 10:15:56 -0700</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre23/lbl/fastensor/</guid><description>&lt;p>&lt;a href="https://sdm.lbl.gov/fastensor/" target="_blank" rel="noopener">FasTensor&lt;/a> is a parallel execution engine for user-defined functions on multidimensional arrays. The user-defined functions follow the stencil metaphor used for scientific computing and is effective for expressing a wide range of computations for data analyses, including common aggregation operations from database management systems and advanced machine learning pipelines. FasTensor execution engine exploits the structural-locality in the multidimensional arrays to automate data management operations such as file I/O, data partitioning, communication, parallel execution, and so on.&lt;/p>
&lt;h3 id="tensor-execution-engine-on-gpu">Tensor execution engine on GPU&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: &lt;code>Data Management&lt;/code>, &lt;code>Analytics&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: C++, github&lt;/li>
&lt;li>&lt;strong>Difficulty&lt;/strong>: Difficult&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong>: Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentor&lt;/strong>: &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/john-wu/">John Wu&lt;/a>, &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/bin-dong/">Bin Dong&lt;/a>, &lt;a href="mailto:sbyna@lbl.gov">Suren Byna&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Tensor based computing is needed by scientific applications and now advanced AI model training. Most tensor libraries are hand customized and optimized on GPU, and most of they only serve one kind of application. For example, TensorFlow is only optimized for AI model training. Optimizing generic tensor computing libraries on GPU can benefit wide applications. Our FasTensor, as a generic tensor computing library, can only work efficiently on CPU now. How to run the FasTensor on GPU is still none-explored work. Research and development challenges will include but not limited to: 1) how to maintain structure-locality of tensor data on GPU; 2) how to reduce the performance loss when the structure-locality of tensor is broken on GPU.&lt;/p>
&lt;ul>
&lt;li>Develop a mechanism to move user-define computing kernels onto GPU&lt;/li>
&lt;li>Evaluate the performance of the execution engine&lt;/li>
&lt;li>Document the execution mechanism&lt;/li>
&lt;li>Develop performance testing suite&lt;/li>
&lt;/ul>
&lt;h3 id="continuous-integration">Continuous Integration&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: &lt;code>Data Management&lt;/code>, &lt;code>Analytics&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: C++, github&lt;/li>
&lt;li>&lt;strong>Difficulty&lt;/strong>: Medium&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong>: Large (300 hours)&lt;/li>
&lt;li>&lt;strong>Mentor&lt;/strong>: &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/john-wu/">John Wu&lt;/a>, &lt;a href="mailto:dbin@lbl.gov">Bin Dong&lt;/a>, &lt;a href="mailto:sbyna@lbl.gov">Suren Byna&lt;/a>&lt;/li>
&lt;/ul>
&lt;ul>
&lt;li>Develop a test suite for the public API of FasTensor&lt;/li>
&lt;li>Automate execution of the test suite&lt;/li>
&lt;li>Document the continuous integration process&lt;/li>
&lt;/ul></description></item><item><title>HDF5</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre22/lbl/hdf5/</link><pubDate>Mon, 07 Nov 2022 10:15:56 -0700</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre22/lbl/hdf5/</guid><description>&lt;p>&lt;a href="https://portal.hdfgroup.org/display/knowledge/What&amp;#43;is&amp;#43;HDF5" target="_blank" rel="noopener">HDF5&lt;/a> is a unique technology suite that makes possible the management of extremely large and complex data collections.&lt;/p>
&lt;p>The HDF5 technology suite includes:&lt;/p>
&lt;ul>
&lt;li>A versatile data model that can represent very complex data objects and a wide variety of metadata.&lt;/li>
&lt;li>A completely portable file format with no limit on the number or size of data objects in the collection.&lt;/li>
&lt;li>A software library that runs on a range of computational platforms, from laptops to massively parallel systems, and implements a high-level API with C, C++, Fortran 90, and Java interfaces.&lt;/li>
&lt;li>A rich set of integrated performance features that allow for access time and storage space optimizations.&lt;/li>
&lt;li>Tools and applications for managing, manipulating, viewing, and analyzing the data in the collection.&lt;/li>
&lt;/ul>
&lt;h3 id="python-interface-to-hdf5-asynchronous-io">Python Interface to HDF5 Asynchronous I/O&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: &lt;code>Python&lt;/code>, &lt;code>Async I/O&lt;/code>, &lt;code>HDF5&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: Python, C, HDF5&lt;/li>
&lt;li>&lt;strong>Difficulty&lt;/strong>: Medium&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong>: Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentor&lt;/strong>: &lt;a href="mailto:sbyna@lbl.gov">Suren Byna&lt;/a>, &lt;a href="mailto:htang4@lbl.gov">Houjun Tang&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>HDF5 is a well-known library for storing and accessing (known as &amp;ldquo;Input and Output&amp;rdquo; or I/O) data on high-performance computing systems. Recently, new technologies, such as asynchronous I/O and caching, have been developed to utilize fast memory and storage devices and to hide the I/O latency. Applications can take advantage of an asynchronous interface by scheduling I/O as early as possible and overlapping computation with I/O operations to improve overall performance. The existing HDF5 asynchronous I/O feature supports the C/C++ interface. This project involves the development and performance evaluation of a Python interface that would allow more Python-based scientific codes to use and benefit from the asynchronous I/O.&lt;/p></description></item><item><title>LiveHD (2022)</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre22/ucsc/livehd/</link><pubDate>Mon, 07 Nov 2022 10:15:56 -0700</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre22/ucsc/livehd/</guid><description>&lt;p>Projects for &lt;a href="https://github.com/masc-ucsc/livehd" target="_blank" rel="noopener">LiveHD&lt;/a>. Lead Mentors: &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/jose-renau/">Jose Renau&lt;/a> and &lt;a href="mailto:swang203@ucsc.edu">Sheng-Hong Wang&lt;/a>.&lt;/p>
&lt;h3 id="hif-tooling">HIF Tooling&lt;/h3>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>&lt;/th>
&lt;th>&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>Title&lt;/td>
&lt;td>HIF tooling&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Description&lt;/td>
&lt;td>Tools around Hardware Interchange Format (HIF) files&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Mentor(s)&lt;/td>
&lt;td>Jose Renau&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Skills&lt;/td>
&lt;td>C++17&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Difficulty&lt;/td>
&lt;td>Medium&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Size&lt;/td>
&lt;td>Medium 175 hours&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/masc-ucsc/hif" target="_blank" rel="noopener">Link&lt;/a>&lt;/td>
&lt;td>&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>HIF (&lt;a href="https://github.com/masc-ucsc/hif" target="_blank" rel="noopener">https://github.com/masc-ucsc/hif&lt;/a>) stands for Hardware Interchange Format.
It is designed to be a efficient binary representation with simple API that
allows to have generic graph and tree representations commonly used by hardware
tools. It is not designer to be a universal format, but rather a storate and
traversal format for hardware tools.&lt;/p>
&lt;p>LiveHD has 2 HIF interfaces, the tree (LNAST) and the graph (Lgraph). Both can
read/write HIF format. The idea of this project is to expand the hif repository
to create some small but useful tools around hif. Some projects:&lt;/p>
&lt;ul>
&lt;li>
&lt;p>hif_diff + hif_patch: Create the equivalent of the diff/patch commands that
exist for text but for HIF files. Since the HIF files have a more clear
structure, some patches changes are more constrained or better understood
(IOs and dependences are explicit).&lt;/p>
&lt;/li>
&lt;li>
&lt;p>hif_tree: Print the HIF hierarchy, somewhat similar to GNU tree but showing the HIF hieararchy.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>hif_grep: capacity to grep for some tokens and outout a hif file only with those. Thena hif_tree/hif_cat can show the contents.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;h3 id="mockturtle">Mockturtle&lt;/h3>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>&lt;/th>
&lt;th>&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>Title&lt;/td>
&lt;td>Mockturtle&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Description&lt;/td>
&lt;td>Perform synthesis for graph in LiveHD using Mockturtle&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Mentor(s)&lt;/td>
&lt;td>Jose Renau&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Skills&lt;/td>
&lt;td>C++17, synthesis&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Difficulty&lt;/td>
&lt;td>Medium&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Size&lt;/td>
&lt;td>Medium 175 hours&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/masc-ucsc/livehd/blob/master/docs/cross.md#mockturtle" target="_blank" rel="noopener">Link&lt;/a>&lt;/td>
&lt;td>&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>There are some issues with Mockturtle integration (new cells) and it is not using the latest Mockturtle library versions.
The goal is to use Mockturtle (&lt;a href="https://github.com/lsils/mockturtle" target="_blank" rel="noopener">https://github.com/lsils/mockturtle&lt;/a>) with LiveHD. The main characteristics:&lt;/p>
&lt;ul>
&lt;li>Use mockturtle to tmap to LUTs&lt;/li>
&lt;li>Use mockturtle to synthesize (optimize) logic&lt;/li>
&lt;li>Enable cut-rewrite as an option&lt;/li>
&lt;li>Enable hierarchy cross optimization (hier:true option)&lt;/li>
&lt;li>Use the graph labeling to find cluster to optimize&lt;/li>
&lt;li>Re-timing&lt;/li>
&lt;li>Map to LUTs only gates and non-wide arithmetic. E.g: 32bit add is not mapped to LUTS, but a 2-bit add is mapped.&lt;/li>
&lt;li>List of resources to not map:
&lt;ul>
&lt;li>Large ALUs. Large ALUs should have an OpenWare block (hardcoded in FPGAs and advanced adder options in ASIC)&lt;/li>
&lt;li>Multipliers and dividers&lt;/li>
&lt;li>Barrell shifters with not trivial shifts (1-2 bits) selectable at run-time&lt;/li>
&lt;li>memories, luts&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h3 id="query-shell">Query Shell&lt;/h3>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>&lt;/th>
&lt;th>&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>Title&lt;/td>
&lt;td>Query Shell&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Description&lt;/td>
&lt;td>Create a console app that interacts with LiveHD to query parameters about designs&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Mentor(s)&lt;/td>
&lt;td>Jose Renau&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Skills&lt;/td>
&lt;td>C++17&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Difficulty&lt;/td>
&lt;td>Medium&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Size&lt;/td>
&lt;td>Medium 175 hours&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/masc-ucsc/livehd/blob/master/docs/cross.md#query-shell-not-lgshell-to-query-graphs" target="_blank" rel="noopener">Link&lt;/a>&lt;/td>
&lt;td>&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;ul>
&lt;li>Based on replxx (like lgshell)&lt;/li>
&lt;li>Query bits, ports&amp;hellip; like
&lt;ul>
&lt;li>&lt;a href="https://github.com/rubund/netlist-analyzer" target="_blank" rel="noopener">https://github.com/rubund/netlist-analyzer&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://www.jameswhanlon.com/querying-logical-paths-in-a-verilog-design.html" target="_blank" rel="noopener">https://www.jameswhanlon.com/querying-logical-paths-in-a-verilog-design.html&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>It would be cool if subsections (selected) parts can be visualized with something like &lt;a href="https://github.com/nturley/netlistsvg" target="_blank" rel="noopener">https://github.com/nturley/netlistsvg&lt;/a>&lt;/li>
&lt;li>The shell may be expanded to support simulation in the future&lt;/li>
&lt;li>Wavedrom/Duh dumps&lt;/li>
&lt;/ul>
&lt;p>Wavedrom and duh allows to dump bitfield information for structures. It would be interesting to explore to dump tables and bit
fields for Lgraph IOs, and structs/fields inside the module. It may be a way to integrate with the documentation generation.&lt;/p>
&lt;p>Example of queries: show path, show driver/sink of, do topo traversal,&amp;hellip;.&lt;/p>
&lt;p>As an interesting extension would be to have some simple embedded language (TCL or ChaiScript or ???) to control queries more
easily and allow to build functions/libraries.&lt;/p>
&lt;h3 id="lgraph-and-lnast-check-pass">Lgraph and LNAST check pass&lt;/h3>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>&lt;/th>
&lt;th>&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>Title&lt;/td>
&lt;td>Lgraph and LNAST check pass&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Description&lt;/td>
&lt;td>Create a pass that check the integrity/correctness of Lgraph and LNAST&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Mentor(s)&lt;/td>
&lt;td>Jose Renau&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Skills&lt;/td>
&lt;td>C++17&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Difficulty&lt;/td>
&lt;td>Medium&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Size&lt;/td>
&lt;td>Large 350 hours&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/masc-ucsc/livehd/blob/master/docs/cross.md#lgraph-and-lnast-check-pass" target="_blank" rel="noopener">Link&lt;/a>&lt;/td>
&lt;td>&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>Create a pass that checks that the Lgraph (and/or LNAST) is semantically
correct. The LNAST already has quite a few tests (pass.semantic), but it can be
further expanded. Some checks:&lt;/p>
&lt;ul>
&lt;li>No combinational loops&lt;/li>
&lt;li>No mismatch in bit widths&lt;/li>
&lt;li>No disconnected nodes&lt;/li>
&lt;li>Check for inefficient splits (do not split buses that can be combined)&lt;/li>
&lt;li>Transformations stages should not drop names if same net is preserved&lt;/li>
&lt;li>No writes in LNAST that are never read&lt;/li>
&lt;li>All the edges are possible. E.g: no pin &amp;lsquo;C&amp;rsquo; in Sum_op&lt;/li>
&lt;/ul>
&lt;h3 id="unbitwidth">unbitwidth&lt;/h3>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>&lt;/th>
&lt;th>&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>Title&lt;/td>
&lt;td>unbitwidth&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Description&lt;/td>
&lt;td>Not all the variables need bitwidth information. Find the small subset&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Mentor(s)&lt;/td>
&lt;td>Jose Renau&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Skills&lt;/td>
&lt;td>C++17&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Difficulty&lt;/td>
&lt;td>Medium&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Size&lt;/td>
&lt;td>Medium 175 hours&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/masc-ucsc/livehd/blob/master/docs/cross.md#unbitwidth-local-and-global-bitwidth" target="_blank" rel="noopener">Link&lt;/a>&lt;/td>
&lt;td>&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>This pass is needed to create less verbose CHISEL and Pyrope code generation.&lt;/p>
&lt;p>The LGraph can have bitwidth information for each dpin. This is needed for
Verilog code generation, but not needed for Pyrope or CHISEL. CHISEL can
perform local bitwidth inference and Pyrope can perform global bitwidth
inference.&lt;/p>
&lt;p>A new pass should remove redundant bitwidth information. The information is
redundant because the pass/bitwidth can regenerate it if there is enough
details. The goal is to create a pass/unbitwidth that removes either local or
global bitwidth. The information left should be enough for the bitwidth pass to
regenerate it.&lt;/p>
&lt;ul>
&lt;li>
&lt;p>Local bitwidth: It is possible to leave the bitwidth information in many
places and it will have the same results, but for CHISEL the inputs should be
sized. The storage (memories/flops) should have bitwidth when can not be
inferred from the inputs.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Global bitwidth: Pyrope bitwidth inference goes across the call hierarchy.
This means that a module could have no bitwidth information at all. We start
from the leave nodes. If all the bits can be inferred given the inputs, the
module should have no bitwidth. In that case the bitwidth can be inferred from
outside.&lt;/p>
&lt;/li>
&lt;/ul></description></item><item><title>LiveHD (2023)</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre23/ucsc/livehd/</link><pubDate>Mon, 07 Nov 2022 10:15:56 -0700</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre23/ucsc/livehd/</guid><description>&lt;p>Projects for &lt;a href="https://github.com/masc-ucsc/livehd" target="_blank" rel="noopener">LiveHD&lt;/a>.&lt;br>
Lead Mentors: &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/jose-renau/">Jose Renau&lt;/a> and &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/sakshi-garg/">Sakshi Garg&lt;/a>.&lt;br>
Contributor(s): &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/shahzaib-kashif/">Shahzaib Kashif&lt;/a>&lt;/p>
&lt;p>LiveHD is a &amp;ldquo;compiler&amp;rdquo; infrastructure for hardware design optimized for synthesis and simulation. The goals is to enable a more productive flow where the ASIC/FPGA designer can work with multiple hardware description languages like CHISEL, Pyrope, or Verilog.&lt;/p>
&lt;p>There are several projects available around LiveHD. A longer explanation and more project options are available at
&lt;a href="https://github.com/masc-ucsc/livehd/blob/master/docs/projects.md" target="_blank" rel="noopener">projects&lt;/a>. Contact the
mentors to find a project that fits your interests.&lt;/p>
&lt;p>A sample of helpful projects:&lt;/p>
&lt;h3 id="mockturtle">Mockturtle&lt;/h3>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>&lt;/th>
&lt;th>&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>Title&lt;/td>
&lt;td>Mockturtle&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Description&lt;/td>
&lt;td>Perform synthesis for graph in LiveHD using Mockturtle&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Mentor(s)&lt;/td>
&lt;td>Jose Renau and &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/sakshi-garg/">Sakshi Garg&lt;/a>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Skills&lt;/td>
&lt;td>C++17, synthesis&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Difficulty&lt;/td>
&lt;td>Medium&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Size&lt;/td>
&lt;td>Medium 175 hours&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/masc-ucsc/livehd/blob/master/docs/projects_large.md#medium-parallel-and-hierarchical-synthesis-with-mockturtle" target="_blank" rel="noopener">Link&lt;/a>&lt;/td>
&lt;td>&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>Mockturtle (&lt;a href="https://github.com/lsils/mockturtle" target="_blank" rel="noopener">https://github.com/lsils/mockturtle&lt;/a>) is a synthesis tool partially
integrated with LiveHD. The goal of this task is to iron out bugs and issues
and to use the LiveHD Tasks API to parallelize the synthesis.&lt;/p>
&lt;p>Main features:&lt;/p>
&lt;ul>
&lt;li>The current synthesis divides the circuit in partitions. Each partition can be synthesized in parallel.&lt;/li>
&lt;li>Support hierarchical synthesis to optimize cross Lgraphs (cross verilog module optimization)&lt;/li>
&lt;/ul>
&lt;p>The goal is to use Mockturtle (&lt;a href="https://github.com/lsils/mockturtle" target="_blank" rel="noopener">https://github.com/lsils/mockturtle&lt;/a>) with LiveHD. The main characteristics:&lt;/p>
&lt;ul>
&lt;li>Use mockturtle to tmap to LUTs&lt;/li>
&lt;li>Use mockturtle to synthesize (optimize) logic&lt;/li>
&lt;li>Enable cut-rewrite as an option&lt;/li>
&lt;li>Enable hierarchy cross optimization (hier:true option)&lt;/li>
&lt;li>Use the graph labeling to find cluster to optimize&lt;/li>
&lt;li>Re-timing&lt;/li>
&lt;li>Map to LUTs only gates and non-wide arithmetic. E.g: 32bit add is not mapped to LUTS, but a 2-bit add is mapped.&lt;/li>
&lt;li>List of resources to not map:
&lt;ul>
&lt;li>Large ALUs. Large ALUs should have an OpenWare block (hardcoded in FPGAs and advanced adder options in ASIC)&lt;/li>
&lt;li>Multipliers and dividers&lt;/li>
&lt;li>Barrell shifters with not trivial shifts (1-2 bits) selectable at run-time&lt;/li>
&lt;li>memories, luts&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h3 id="livehd-console">LiveHD Console&lt;/h3>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>&lt;/th>
&lt;th>&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>Title&lt;/td>
&lt;td>LiveHD Console&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Description&lt;/td>
&lt;td>Create a console app that interacts with LiveHD to query parameters about designs&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Mentor(s)&lt;/td>
&lt;td>Jose Renau and &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/sakshi-garg/">Sakshi Garg&lt;/a>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Skills&lt;/td>
&lt;td>C++17&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Difficulty&lt;/td>
&lt;td>Medium&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Size&lt;/td>
&lt;td>Medium 175 hours&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/masc-ucsc/livehd/blob/master/docs/projects_small.md#medium-query-shell-not-lgshell-to-query-graphs" target="_blank" rel="noopener">Link&lt;/a>&lt;/td>
&lt;td>&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>Current LiveHD uses replxx but it a no longer maintained shell/console. The result is that it fails in newer versions of OSX.&lt;/p>
&lt;p>There is an alternative Crossline (&lt;a href="https://github.com/jcwangxp/Crossline%29" target="_blank" rel="noopener">https://github.com/jcwangxp/Crossline)&lt;/a>. This affects main/main.cpp and nothing else.&lt;/p>
&lt;p>In addition to replace the current console with auto-completion, the plan is to add &amp;ldquo;query&amp;rdquo; capacity to visualize some
of the LiveHD internals.&lt;/p>
&lt;ul>
&lt;li>Query bits, ports&amp;hellip; like
&lt;ul>
&lt;li>&lt;a href="https://github.com/rubund/netlist-analyzer" target="_blank" rel="noopener">https://github.com/rubund/netlist-analyzer&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://www.jameswhanlon.com/querying-logical-paths-in-a-verilog-design.html" target="_blank" rel="noopener">https://www.jameswhanlon.com/querying-logical-paths-in-a-verilog-design.html&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>It would be cool if subsections (selected) parts can be visualized with something like &lt;a href="https://github.com/nturley/netlistsvg" target="_blank" rel="noopener">https://github.com/nturley/netlistsvg&lt;/a>&lt;/li>
&lt;li>The shell may be expanded to support simulation in the future&lt;/li>
&lt;li>Wavedrom/Duh dumps&lt;/li>
&lt;/ul>
&lt;p>Wavedrom and duh allows to dump bitfield information for structures. It would be interesting to explore to dump tables and bit
fields for Lgraph IOs, and structs/fields inside the module. It may be a way to integrate with the documentation generation.&lt;/p>
&lt;p>Example of queries: show path, show driver/sink of, do topo traversal,&amp;hellip;.&lt;/p>
&lt;h3 id="compiler-error-generation-pass">Compiler error generation pass&lt;/h3>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>&lt;/th>
&lt;th>&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>Title&lt;/td>
&lt;td>Lgraph and LNAST check pass&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Description&lt;/td>
&lt;td>Create a pass that check the integrity/correctness of Lgraph and LNAST&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Mentor(s)&lt;/td>
&lt;td>Jose Renau and &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/sakshi-garg/">Sakshi Garg&lt;/a>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Skills&lt;/td>
&lt;td>C++17&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Difficulty&lt;/td>
&lt;td>Medium&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Size&lt;/td>
&lt;td>Large 350 hours&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/masc-ucsc/livehd/blob/master/docs/projects_small.md#medium-diagnostics" target="_blank" rel="noopener">Link&lt;/a>&lt;/td>
&lt;td>&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>Create a pass that checks that the Lgraph (and/or LNAST) is semantically
correct. The LNAST already has quite a few tests (pass.semantic), but it can be
further expanded. Some checks:&lt;/p>
&lt;ul>
&lt;li>No combinational loops&lt;/li>
&lt;li>No mismatch in bit widths&lt;/li>
&lt;li>No disconnected nodes&lt;/li>
&lt;li>Check for inefficient splits (do not split buses that can be combined)&lt;/li>
&lt;li>Transformations stages should not drop names if same net is preserved&lt;/li>
&lt;li>No writes in LNAST that are never read&lt;/li>
&lt;li>All the edges are possible. E.g: no pin &amp;lsquo;C&amp;rsquo; in Sum_op&lt;/li>
&lt;/ul></description></item><item><title>Open Source Autonomous Vehicle Controller</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre22/ucsc/osavc/</link><pubDate>Mon, 07 Nov 2022 10:15:56 -0700</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre22/ucsc/osavc/</guid><description>&lt;p>The OSAVC is a vehicle-agnostic open source hardware and software project. This project is designed to provide a real-time hardware controller adaptable to any vehicle type, suitable for aerial, terrestrial, marine, or extraterrestrial vehicles. It allows control researchers to develop state estimation algorithms, sensor calibration algorithms, and vehicle control models in a modular fashion such that once the hardware set has been developed switching algorithms requires only modifying one C function and recompiling.&lt;/p>
&lt;p>Lead mentor: &lt;a href="mailto:aamuhunt@ucsc.edu">Aaron Hunter&lt;/a>&lt;/p>
&lt;p>Projects for the OSAVC:&lt;/p>
&lt;h3 id="vehiclecraft-sensor-driver-development">Vehicle/Craft sensor driver development&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: Driver code to integrate sensor to a microcontroller&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: C, I2C, SPI, UART interfaces&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong> 175 hours&lt;/li>
&lt;li>&lt;strong>Difficulty&lt;/strong> Medium&lt;/li>
&lt;li>&lt;strong>Mentor&lt;/strong> Aaron Hunter&lt;/li>
&lt;/ul>
&lt;p>Help develop a sensor library for use in autonomnous vehicles. Possible sensors include range finders, ping sensors, IMUs, GPS receivers, RC receivers, barometers, air speed sensors, etc. Code will be written in C using state machine methodology and non-blocking algorithms. Test the drivers on a Microchip microncontroller.&lt;/p>
&lt;h3 id="path-finding-algorithm-using-opencv-and-machine-learning">Path finding algorithm using OpenCV and machine learning&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: Computer vision, blob detection&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: C/Python, OpenCV&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong> 175 or 350 hours&lt;/li>
&lt;li>&lt;strong>Difficulty&lt;/strong> Medium&lt;/li>
&lt;li>&lt;strong>Mentor&lt;/strong> Aaron Hunter&lt;/li>
&lt;/ul>
&lt;p>Use OpenCV to identify a track for an autonomous vehicle to follow. Build on previous work by developing a new model using EfficientDet and an existing training set of images. Port the model to TFlite and implement on the Coral USB Accelerator. Evaluate its performance against our previous efforts.&lt;/p>
&lt;h3 id="state-estimationsensor-fusion-algorithm-development">State estimation/sensor fusion algorithm development&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: Kalman filtering, Mahoney&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: C/Python, Matlab/Simulink, numerical optimization algorithms&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong> 350 hours&lt;/li>
&lt;li>&lt;strong>Difficulty&lt;/strong> Challenging&lt;/li>
&lt;li>&lt;strong>Mentor&lt;/strong> Aaron Hunter&lt;/li>
&lt;/ul>
&lt;p>Implement an optimal state estimation algorithm from a model. This model can be derived from a Kalman filter or some other state estimation filter (e.g., Mahoney filter). THe model takes sensor readings as input and provides an estimate of the state of a vehicle. Finally, convert the model to standard C using the Simulink code generation or implement in Python (for use on a single board computer, e.g., Raspberry Pi)&lt;/p></description></item><item><title>Open Source Autonomous Vehicle Controller</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre23/ucsc/osavc/</link><pubDate>Mon, 07 Nov 2022 10:15:56 -0700</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre23/ucsc/osavc/</guid><description>&lt;p>The OSAVC is a vehicle-agnostic open source hardware and software project. This project is designed to provide a real-time hardware controller adaptable to any vehicle type, suitable for aerial, terrestrial, marine, or extraterrestrial vehicles. It allows control researchers to develop state estimation algorithms, sensor calibration algorithms, and vehicle control models in a modular fashion such that once the hardware set has been developed switching algorithms requires only modifying one C function and recompiling.&lt;/p>
&lt;p>Lead mentor: &lt;a href="mailto:aamuhunt@ucsc.edu">Aaron Hunter&lt;/a>&lt;/p>
&lt;p>Projects for the OSAVC:&lt;/p>
&lt;h3 id="vehiclecraft-sensor-driver-development">Vehicle/Craft sensor driver development&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: Driver code to integrate sensor to a microcontroller&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: C, I2C, SPI, UART interfaces&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong> 175 hours&lt;/li>
&lt;li>&lt;strong>Difficulty&lt;/strong> Medium&lt;/li>
&lt;li>&lt;strong>Mentor&lt;/strong> &lt;a href="mailto:aamuhunt@ucsc.edu">Aaron Hunter&lt;/a>, &lt;a href="mailto:caiespin@ucsc.edu">Carlos Espinosa&lt;/a>, Pavlo Vlastos&lt;/li>
&lt;/ul>
&lt;p>Help develop sensor libraries for use in autonomous vehicles. We are in particular interested in sensors for UAVs: airspeed sensors (pitot tube) or barometers, but also proximity detectors (ultrasonic), and range sensors. Code will be written in C using state machine methodology and non-blocking algorithms. Test the drivers on a Microchip microncontroller.&lt;/p>
&lt;h3 id="technical-documentation">Technical Documentation&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: Documentation&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: Technical writing, markdown language, website&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong> 175 hours&lt;/li>
&lt;li>&lt;strong>Difficulty&lt;/strong> Medium&lt;/li>
&lt;li>&lt;strong>Mentor&lt;/strong> Aaron Hunter/Carlos Espinosa/Pavlo Vlastos&lt;/li>
&lt;li>&lt;strong>Contributor(s)&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/aniruddha-thakre/">Aniruddha Thakre&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Technical Documentation:
Write a tutorial to demonstrate how to start with an OSAVC and program it with the robotic equivalent of HelloWorld, moving onto more sophisticated applications. Create a web page interface to the OSAVC repo highlighting this tutorial. In this project you will start from scratch with an OSAVC PCB and bring it to life, while documenting it in a way to help new users.&lt;/p>
&lt;h3 id="rosgazebo-robot-simulation">ROS/Gazebo Robot Simulation&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: Robot simulation with ROS/Gazebo&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong> ROS/Gazebo, Python&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong> 175 or 350 hours&lt;/li>
&lt;li>&lt;strong>Difficulty&lt;/strong> Medium to Hard&lt;/li>
&lt;li>&lt;strong>Mentor&lt;/strong> &lt;a href="mailto:aamuhunt@ucsc.edu">Aaron Hunter&lt;/a>, &lt;a href="mailto:caiespin@ucsc.edu">Carlos Espinosa&lt;/a>, Pavlo Vlastos&lt;/li>
&lt;li>&lt;strong>Contributor(s)&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/damodar-datta-kancharla/">Damodar Datta Kancharla&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Generate a simulated world and a quadcopter model in ROS/Gazebo. Provide a link from Mavlink to ROS using the mavros package and simulate a real vehicle data stream to command the simulated quadcopter in Gazebo. At the same time return the image stream from Gazebo to allow for offline processing of ML models on the images.&lt;/p></description></item><item><title>OpenRAM</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre22/ucsc/openram/</link><pubDate>Mon, 07 Nov 2022 10:15:56 -0700</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre22/ucsc/openram/</guid><description>&lt;p>&lt;a href="https://github.com/VLSIDA/OpenRAM" target="_blank" rel="noopener">OpenRAM&lt;/a> is an award winning open-source Python framework to create the layout, netlists, timing and power models, placement and routing models, and other views necessary to use SRAMs in ASIC design. OpenRAM supports integration in both commercial and open-source flows with both predictive and fabricable technologies. Most recently, it has created memories that are included on all of the &lt;a href="https://efabless.com/open_shuttle_program/" target="_blank" rel="noopener">eFabless/Google/Skywater MPW tape-outs&lt;/a>.&lt;/p>
&lt;h3 id="replace-logging-framework-with-library">Replace logging framework with library&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> &lt;code>User Interfaces&lt;/code>, &lt;code>Python APIs&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> Python&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Easy&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong>: Medium (175 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="mailto:mrg@ucsc.edu">Matthew Guthaus&lt;/a>,&lt;a href="mailto:jcirimel@ucsc.edu">Jesse Cirimelli-Low&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Replace the custom logging framework in OpenRAM with &lt;a href="https://docs.python.org/3/library/logging.html" target="_blank" rel="noopener">Python logging&lt;/a> module. New logging should allow levels of detail as well as tags to enable/disable logging of particular features to aid debugging.&lt;/p>
&lt;h3 id="rom-generator">ROM generator&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> &lt;code>VLSI Design Basics&lt;/code>, &lt;code>Memories&lt;/code>, &lt;code>Python&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> Python, VLSI&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Medium/Challenging&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong>: Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="mailto:mrg@ucsc.edu">Matthew Guthaus&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Use the OpenRAM API to generate a Read-Only Memory (ROM) file from an input hex file. Project
will automatically generate a Spice netlist, layout, Verilog model and timing characterization.&lt;/p>
&lt;h3 id="register-file-generator">Register File generator&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> &lt;code>VLSI Design Basics&lt;/code>, &lt;code>Memories&lt;/code>, &lt;code>Python&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> Python, VLSI&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Medium/Challenging&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong>: Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="mailto:mrg@ucsc.edu">Matthew Guthaus&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Use the OpenRAM API to generate a Register File from standard library cells. Project
will automatically generate a Spice netlist, layout, Verilog model and timing characterization.&lt;/p>
&lt;h3 id="built-in-self-test-and-repair">Built-In Self Test and Repair&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> &lt;code>VLSI Design Basics&lt;/code>, &lt;code>Python&lt;/code>, &lt;code>Verilog&lt;/code>, &lt;code>Testing&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> Python, Verilog&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Medium/Challenging&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Medium (175 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="mailto:mrg@ucsc.edu">Matthew Guthaus&lt;/a>, &lt;a href="mailto:bonal@ucsc.edu">Bugra Onal&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Finish integration of parameterized Verilog modeule to support Built-In-Self-Test and Repair
of OpenRAM memories using spare rows and columns in OpenRAM memories.&lt;/p>
&lt;h3 id="layout-verses-schematic-lvs-visualization">Layout verses Schematic (LVS) visualization&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> &lt;code>VLSI Design Basics&lt;/code>, &lt;code>Python&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> Python, VLSI, JSON&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Easy/Medium&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong>: Medium or Large (175 or 350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="mailto:mrg@ucsc.edu">Matthew Guthaus&lt;/a>,&lt;a href="mailto:jcirimel@ucsc.edu">Jesse Cirimelli-Low&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Create a visualization interface to debug layout verses schematic mismatches in &lt;a href="https://github.com/RTimothyEdwards/magic" target="_blank" rel="noopener">Magic&lt;/a> layout editor. Results will be parsed from a JSON output of &lt;a href="https://github.com/RTimothyEdwards/netgen" target="_blank" rel="noopener">Netgen&lt;/a>.&lt;/p></description></item><item><title>OpenROAD - A Complete, Autonomous RTL-GDSII Flow for VLSI Designs</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre22/ucsc/openroad/</link><pubDate>Mon, 07 Nov 2022 10:15:56 -0700</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre22/ucsc/openroad/</guid><description>&lt;p>&lt;a href="https://theopenroadproject.org" target="_blank" rel="noopener">OpenROAD&lt;/a> is a front-runner in open-source semiconductor design automation tools and know-how. OpenROAD reduces barriers of access and tool costs to democratize system and product innovation in silicon. The OpenROAD tool and flow provide an autonomous, no-human-in-the-loop, 24-hour RTL-GDSII capability to support low-overhead design exploration and implementation through tapeout. We welcome a diverse community of designers, researchers, enthusiasts and entrepreneurs who use and contribute to OpenROAD to make a far-reaching impact.
Our mission is to democratize and advance design automation of semiconductor devices through leadership, innovation, and collaboration.&lt;/p>
&lt;p>OpenROAD is the key enabler of successful Chip initiatives like the Google-sponsored &lt;a href="efabless.com">Efabless&lt;/a> that has made possible more than 150 successful tapeouts by a diverse and global user community. The OpenROAD project repository is &lt;a href="https://github.com/The-OpenROAD-Project/OpenROAD" target="_blank" rel="noopener">https://github.com/The-OpenROAD-Project/OpenROAD&lt;/a>.&lt;/p>
&lt;p>Design of static RAMs in VLSI designs for good performance and area is generally time-consuming. Memory compilers significantly reduce design time for complex analog and mixed-signal designs by allowing designers to explore, verify and configure multiple variants and hence select a design that is optimal for area and performance. This project requires the support of memory compilers to &lt;a href="https://github.com/The-OpenROAD-Project/OpenROAD-flow-scripts" target="_blank" rel="noopener">OpenROAD-flow-scripts&lt;/a> based on popular PDKS such as those provided by &lt;a href="https://github.com/vlsida/openram" target="_blank" rel="noopener">OpenRAM&lt;/a>.&lt;/p>
&lt;h3 id="openlane-memory-design-macro-floorplanning">OpenLane Memory Design Macro Floorplanning&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: &lt;code>Memory Compilers&lt;/code>, &lt;code>OpenRAM&lt;/code>, &lt;code>Programmable RAM&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: python, basic knowledge of memory design, VLSI technology, PDK, Verilog&lt;/li>
&lt;li>&lt;strong>Difficulty&lt;/strong>: Medium&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong>: Medium or Large (175 or 350 hours)&lt;/li>
&lt;li>&lt;strong>Mentor&lt;/strong>: &lt;a href="mailto:mrg@ucsc.edu">Matthew Guthaus&lt;/a>, &lt;a href="mailto:mehdi@umich.edu">Mehdi Saligane&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Improve and verify &lt;a href="https://github.com/The-OpenROAD-Project/OpenLane" target="_blank" rel="noopener">OpenLane&lt;/a> design planning with OpenRAM memories. Specifically, this project will utilize the macro placer/floorplanner and resolve any issues for memory placement. Issues that will need to be addressed may include power supply connectivity, ability to rotate memory macros, and solving pin-access issues.&lt;/p>
&lt;h3 id="openlane-memory-design-timing-analysis">OpenLane Memory Design Timing Analysis&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: &lt;code>Memory Compilers&lt;/code>, &lt;code>OpenRAM&lt;/code>, &lt;code>Programmable RAM&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: python, basic knowledge of memory design, VLSI technology, PDK, Verilog&lt;/li>
&lt;li>&lt;strong>Difficulty&lt;/strong>: Medium&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong>: Medium or Large (175 or 350 hours)&lt;/li>
&lt;li>&lt;strong>Mentor&lt;/strong>: &lt;a href="mailto:mrg@ucsc.edu">Matthew Guthaus&lt;/a>, &lt;a href="mailto:mehdi@umich.edu">Mehdi Saligane&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Improve and verify &lt;a href="https://github.com/The-OpenROAD-Project/OpenLane" target="_blank" rel="noopener">OpenLane&lt;/a> Static Timing Analysis using OpenRAM generated library files. Specifically, this will include verifying setup/hold conditions as well as creating additional checks such as minimum period, minimum pulse width, etc. Also, the project will add timing information to Verilog behavioral model.&lt;/p>
&lt;h3 id="openlane-memory-macro-pdk-support">OpenLane Memory Macro PDK Support&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: &lt;code>Memory Compilers&lt;/code>, &lt;code>OpenRAM&lt;/code>, &lt;code>Programmable RAM&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: python, basic knowledge of memory design, VLSI technology, PDK, Verilog&lt;/li>
&lt;li>&lt;strong>Difficulty&lt;/strong>: Medium&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong>: Medium or Large (175 or 350 hours)&lt;/li>
&lt;li>&lt;strong>Mentor&lt;/strong>: &lt;a href="mailto:mrg@ucsc.edu">Matthew Guthaus&lt;/a>, &lt;a href="mailto:mehdi@umich.edu">Mehdi Saligane&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Integrate and verify FreePDK45 OpenRAM memories with an &lt;a href="https://github.com/The-OpenROAD-Project/OpenLane" target="_blank" rel="noopener">OpenLane&lt;/a> FreePDK45 design flow. OpenLane currently supports only Skywater 130nm PDK, but OpenROAD supports FreePDK45 (which is the same as Nangate45). This project will create a design using OpenRAM memories with the OpenLane flow using FreePDK45.&lt;/p>
&lt;h3 id="vlsi-power-planning-and-analysis">VLSI Power Planning and Analysis&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: &lt;code>Power Planning for VLSI&lt;/code>, &lt;code>IR Drop Analysis&lt;/code>, &lt;code>Power grid Creation and Analysis&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: C++, tcl, VLSI Layout&lt;/li>
&lt;li>&lt;strong>Difficulty&lt;/strong>: Medium&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong>: Medium or Large (175 or 350 hours)&lt;/li>
&lt;li>&lt;strong>Mentor&lt;/strong>: Mehdi Saligane &lt;a href="mailto:mehdi@umich.edu">mailto:mehdi@umich.edu&lt;/a>, Ming-Hung &lt;a href="mailto:minghung@umich.edu">mailto:minghung@umich.edu&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Take the existing power planning (pdngen.tcl) module of openroad and recode the functionality in C++ ensuring that all of the unit tests on the existing code pass correctly. Work with a senior member of the team at ARM. Ensure that designs created are of good quality for power routing and overall power consumption.&lt;/p>
&lt;h3 id="demos-and-tutorials">Demos and Tutorials&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: &lt;code>Demo Development&lt;/code>, &lt;code>Documentation&lt;/code>, &lt;code>VLSI design basics&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: Knowledge of EDA tools, basics of VLSI design flow, tcl, shell scripts, Documentation, Markdown&lt;/li>
&lt;li>&lt;strong>Difficulty&lt;/strong>: Medium&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong>: Medium (175 hours)&lt;/li>
&lt;li>&lt;strong>Mentor&lt;/strong>: &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/indira-iyer/">Indira Iyer&lt;/a>, &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/vitor-bandeira/">Vitor Bandeira&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>For &lt;a href="https://github.com/The-OpenROAD-Project/OpenLane" target="_blank" rel="noopener">OpenLane&lt;/a>, develop demos showing:
The OpenLane flow and highight key features
GUI visualizations
Design Explorations and Experiments
Different design styles and particular challenges&lt;/p>
&lt;h3 id="comprehensive-flow-testing">Comprehensive Flow Testing&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: &lt;code>Testing&lt;/code>, &lt;code>Documentation&lt;/code>, &lt;code>VLSI design basics&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: Knowledge of EDA tools, basics of VLSI design, tcl, shell scripts, Verilog, Layout&lt;/li>
&lt;li>&lt;strong>Difficulty&lt;/strong>: Medium&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong>: Medium (175 hours)&lt;/li>
&lt;li>&lt;strong>Mentor&lt;/strong>: &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/indira-iyer/">Indira Iyer&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Develop detailed test plans to test the OpenLane flow to expand coverage and advanced features. Add open source designs to the regression test suite to improve tool quality and robustness. This includes design specification, configuration and creation of all necessary files for regression testing. Suggested sources : ICCAS benchmarks, opencores, LSOracle for synthesis flow option.&lt;/p>
&lt;h3 id="enhance-gui-features">Enhance GUI features&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: &lt;code>GUI&lt;/code>, &lt;code>Visualization&lt;/code>, &lt;code>User Interfaces&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: C++, Qt&lt;/li>
&lt;li>&lt;strong>Difficulty&lt;/strong>: Medium&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong>: Medium or Large (175 or 350 hours)&lt;/li>
&lt;li>&lt;strong>Mentor&lt;/strong>: &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/matt-liberty/">Matt Liberty&lt;/a>, &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/vitor-bandeira/">Vitor Bandeira&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>For &lt;a href="https://github.com/The-OpenROAD-Project/OpenROAD" target="_blank" rel="noopener">OpenROAD&lt;/a>, develop and enhance visualizations for EDA data and algorithms in the OpenROAD GUI. Allow deeper understanding of the tool results for users and tool internals for developers.&lt;/p>
&lt;h3 id="automate-opendb-code-generation">Automate OpenDB code Generation&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: &lt;code>Database&lt;/code>, &lt;code>EDA&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: C++, Python, JSON, Jinja templating&lt;/li>
&lt;li>&lt;strong>Difficulty&lt;/strong>: Medium&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong>: Medium or Large (175 or 350 hours)&lt;/li>
&lt;li>&lt;strong>Mentor&lt;/strong>: &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/matt-liberty/">Matt Liberty&lt;/a>, &lt;a href="mailto:aspyrou@eng.ucsd.edu">Tom Spyrou&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>For &lt;a href="https://github.com/The-OpenROAD-Project/OpenROAD" target="_blank" rel="noopener">OpenROAD&lt;/a>- Automatic code generation for the OpenDB database which allows improvements to the data model with much less hand coding. Allow the generation of storage, serialization, and callback code from a custom schema description format.
r&lt;/p>
&lt;h3 id="implement-an-nlp-based-ai-bot-aimed-at-increasing-users-enhancing-usability-and-building-a-knowledge-base">Implement an NLP based AI bot aimed at increasing users, enhancing usability and building a knowledge base&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: &lt;code>AI&lt;/code>, &lt;code>ML&lt;/code>, &lt;code>Analytics&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: Python. ML libraries (e.g., Tensorflow, PyTorch)&lt;/li>
&lt;li>&lt;strong>Difficulty&lt;/strong>: Medium&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong>: Medium or Large (175 or 350 hours)&lt;/li>
&lt;li>&lt;strong>Mentor&lt;/strong>: &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/vitor-bandeira/">Vitor Bandeira&lt;/a>, &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/indira-iyer/">Indira Iyer&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>The &lt;a href="https://github.com/The-OpenROAD-Project/OpenROAD" target="_blank" rel="noopener">OpenROAD&lt;/a> project contains a storehouse of knowledge in it&amp;rsquo;s Github repositories within Issues and Pull requests. Additionally, project related slack channels also hold useful information in the form of questions and answers, problems and solutions in conversation threads. Implement an AI analytics bot that filters, selects relevant discussions and classifies/records them into useful documentation and actionable issues. This should also directly track, increase project usage and report outcome metrics.&lt;/p></description></item><item><title>Package Management &amp; Reproducibility</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre22/ucsc/packaging/</link><pubDate>Mon, 07 Nov 2022 10:15:56 -0700</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre22/ucsc/packaging/</guid><description>&lt;p>Project ideas related to reproducibility and package management, especially as it relates to &lt;em>store type package managers&lt;/em> (&lt;a href="http://nixos.org/" target="_blank" rel="noopener">NixOS&lt;/a>, &lt;a href="https://guix.gnu.org/" target="_blank" rel="noopener">Guix&lt;/a> or &lt;a href="https://spack.io/" target="_blank" rel="noopener">Spack&lt;/a>).&lt;/p>
&lt;p>Lead Mentor: &lt;a href="https://users.soe.ucsc.edu/~fmzakari" target="_blank" rel="noopener">Farid Zakaria&lt;/a> &lt;a href="mailto:fmzakari@ucsc.edu">mailto:fmzakari@ucsc.edu&lt;/a>&lt;/p>
&lt;h3 id="investigate-the-dynamic-linking-landscape">Investigate the dynamic linking landscape&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> &lt;code>Operating Systems&lt;/code> &lt;code>Compilers&lt;/code> &lt;code>Linux&lt;/code> &lt;code>Package Management&lt;/code> &lt;code>NixOS&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> Experience with systems programming and Linux familiarity&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Moderate to Challenging&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong>: Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="mailto:fmzakari@ucsc.edu">Farid Zakaria&lt;/a> &amp;amp; &lt;a href="https://people.llnl.gov/scogland1" target="_blank" rel="noopener">Tom Scogland&lt;/a> &lt;a href="mailto:scogland1@llnl.gov">mailto:scogland1@llnl.gov&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Dynamic linking as specified in the ELF file format has gone unchallenged since it&amp;rsquo;s invention. With many new package management models that eschew the filesystem hierarchy standard (i.e. Nix, Guix and Spack), many of the idiosyncrasies that define the way in which libraries are discovered are no longer useful and potentially harmful.&lt;/p>
&lt;p>Specific tasks:&lt;/p>
&lt;ul>
&lt;li>Continue development on &lt;a href="https://github.com/fzakaria/shrinkwrap" target="_blank" rel="noopener">Shrinkwrap&lt;/a> a tool to make dynamic library loading simpler and more robust.&lt;/li>
&lt;li>Evaluate it&amp;rsquo;s effectiveness across a wide range of binaries.&lt;/li>
&lt;li>Upstream contributions to &lt;a href="http://nixos.org/" target="_blank" rel="noopener">NixOS&lt;/a> or &lt;a href="https://guix.gnu.org/" target="_blank" rel="noopener">Guix&lt;/a> to leverage the improvement when suitable.&lt;/li>
&lt;li>Investigate alternative improvements to dynamic linking by writing a dynamic linker &amp;ldquo;loadder wrapper&amp;rdquo; to explore new ideas.&lt;/li>
&lt;/ul></description></item><item><title>Polyphorm / PolyPhy</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre22/ucsc/polyphorm/</link><pubDate>Mon, 07 Nov 2022 10:15:56 -0700</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre22/ucsc/polyphorm/</guid><description>&lt;p>&lt;a href="https://github.com/CreativeCodingLab/Polyphorm" target="_blank" rel="noopener">Polyphorm&lt;/a> is an agent-based system for reconstructing and visualizing &lt;em>optimal transport networks&lt;/em> defined over sparse data. Rooted in astronomy and inspired by nature, we have used Polyphorm to reconstruct the &lt;a href="https://youtu.be/5ILwq5OFuwY" target="_blank" rel="noopener">Cosmic web&lt;/a> structure, but also to discover network-like patterns in natural language data. You can find more details about our research &lt;a href="https://elek.pub/projects/Rhizome-Cosmology" target="_blank" rel="noopener">here&lt;/a>. Under the hood, Polyphorm uses a richer 3D scalar field representation of the reconstructed network, instead of a discrete representation like a graph or a mesh.&lt;/p>
&lt;p>&lt;strong>PolyPhy&lt;/strong> will be a Python-based redesigned version of Polyphorm, currently in the beginning of its development cycle. PolyPhy will be a multi-platform toolkit meant for a wide audience across different disciplines: astronomers, neuroscientists, data scientists and even artists and designers. All of the offered projects focus on PolyPhy, with a variety of topics including design, coding, and even research. Ultimately, PolyPhy will become a tool for discovering connections between different disciplines by creating quantitatively comparable structural analytics.&lt;/p>
&lt;h3 id="develop-website-for-polyphy">Develop website for PolyPhy&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> &lt;code>Web Development&lt;/code> &lt;code>Dynamic Updates&lt;/code> &lt;code>UX&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> web development experience, good communicator, (HTML/CSS), (Javascript)&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Moderate&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Medium or large (175 or 350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="mailto:oelek@ucsc.edu">Oskar Elek&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Develop a clean and welcoming website for the project. The organization needs to reflect the needs of PolyPhy users, but also provide a convenient entry point for interested project contributors. No excessive pop-ups or webjunk.&lt;/p>
&lt;p>Specific tasks:&lt;/p>
&lt;ul>
&lt;li>Work with mentors on understanding the context of the project.&lt;/li>
&lt;li>Port the contents of the &lt;a href="https://github.com/CreativeCodingLab/Polyphorm" target="_blank" rel="noopener">repository page&lt;/a> to a dedicated website.&lt;/li>
&lt;li>Design the structure of the website according to best OS practices.&lt;/li>
&lt;li>Work with the visual designer (see below) in creating a coherent and organic presentation.&lt;/li>
&lt;li>Interactively link important metrics from the project dev environment as well as documentation.&lt;/li>
&lt;/ul>
&lt;h3 id="design-visual-experience-for-polyphys-website-and-presentations">Design visual experience for PolyPhy&amp;rsquo;s website and presentations&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> &lt;code>Design&lt;/code> &lt;code>Art&lt;/code> &lt;code>UX&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> vector and bitmap drawing, sense for spatial symmetry and framing, (interactive content creation), (animation)&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Moderate&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Medium (175 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="mailto:oelek@ucsc.edu">Oskar Elek&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Develop visual content for the project using its main themes: nature-inspired computation, biomimetics, interconnected structures. Aid in designing visual structure of the website as well as other public-facing artifacts.&lt;/p>
&lt;p>Specific tasks:&lt;/p>
&lt;ul>
&lt;li>Work with mentors on understanding the context of the project.&lt;/li>
&lt;li>Design imagery and other graphical elements to visually (re-)present PolyPhy.&lt;/li>
&lt;li>Work with the technical writer (see below) in designing a coherent story.&lt;/li>
&lt;li>Work with the web developer (see above) in creating a coherent and organic presentation.&lt;/li>
&lt;/ul>
&lt;h3 id="write-polyphys-technical-story-and-content">Write PolyPhy&amp;rsquo;s technical story and content&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> &lt;code>Writing&lt;/code> &lt;code>Documentation&lt;/code> &lt;code>Storytelling&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> experienced writing structured text over 10 pages, well read, (technical or scientific education)&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Moderate&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Medium or Large (175 or 350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="mailto:oelek@ucsc.edu">Oskar Elek&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Integral to PolyPhy&amp;rsquo;s presentation is a story that the users and the project contributors can relate to. The objective is to develop the verbal part of that story, as well as major portions of technical documentation that matches it. The difficulty of the project is scalable.&lt;/p>
&lt;p>Specific tasks:&lt;/p>
&lt;ul>
&lt;li>Work with mentors on understanding the context of the project.&lt;/li>
&lt;li>Write different pages of the project website.&lt;/li>
&lt;li>Work with mentors to improve project&amp;rsquo;s written community practices (diversity, communication).&lt;/li>
&lt;li>Write and edit narrative and explanatory parts of PolyPhy&amp;rsquo;s documentation.&lt;/li>
&lt;li>Work with the visual designer (see above) in designing a coherent story.&lt;/li>
&lt;/ul>
&lt;h3 id="video-tutorials-and-presentation-for-polyphy">Video tutorials and presentation for PolyPhy&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> &lt;code>Video Presentation&lt;/code> &lt;code>Tutorials&lt;/code> &lt;code>Didactics&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> video editing, creating educational content, communication, (native or fluent in another language)&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Easy-Moderate&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Medium or Large (175 or 350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="mailto:oelek@ucsc.edu">Oskar Elek&lt;/a>, &lt;a href="mailto:deehrlic@ucsc.edu">Drew Ehrlich&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Create a public face for PolyPhy that reflects its history, context, and teaches its functionality to users in different degrees of familiarity.&lt;/p>
&lt;p>Specific tasks:&lt;/p>
&lt;ul>
&lt;li>Work with mentors on understanding the context and history of the project.&lt;/li>
&lt;li>Interview diverse project contributors.&lt;/li>
&lt;li>Create a video documenting PolyPhy&amp;rsquo;s history, with roots in astronomy, complex systems, fractals.&lt;/li>
&lt;li>Create a set of tutorial videos for starting and intermediate PolyPhy users.&lt;/li>
&lt;li>Create an accessible template for future tutorials.&lt;/li>
&lt;/ul>
&lt;h3 id="implement-heterogeneous-data-io-ops">Implement heterogeneous data I/O ops&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> &lt;code>I/O Operations&lt;/code> &lt;code>File Conversion&lt;/code> &lt;code>Numerics&lt;/code> &lt;code>Testing&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> Python, experience working with scientific or statistical data, good debugging skills&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Moderate-Challenging&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Medium or Large (175 or 350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="mailto:oelek@ucsc.edu">Oskar Elek&lt;/a>, &lt;a href="mailto:anishagoel14@gmail.com">Anisha Goel&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>By default, PolyPhy operates with an unordered set of points as an input and scalar fields (float ndarrays) as an output, but others are applicable as well. Design and implement interfaces to load and export different data formats (CSV, OBJ, HDF5, FITS&amp;hellip;) and modalities (points, meshes, density fields). The difficulty of the project can be scaled based on contributor&amp;rsquo;s interest.&lt;/p>
&lt;p>Specific tasks:&lt;/p>
&lt;ul>
&lt;li>Research which modalities are used by members of the target communities.&lt;/li>
&lt;li>Implement modular loaders for the inputs and an interface to PolyPhy core.&lt;/li>
&lt;li>Implement exporters for simulation datasets and visualization captures.&lt;/li>
&lt;li>Write testing code for the above.&lt;/li>
&lt;li>Integrate external packages as necessary.&lt;/li>
&lt;/ul>
&lt;h3 id="setup-cicd-for-polyphy">Setup CI/CD for PolyPhy&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> &lt;code>Continuous Integration&lt;/code> &lt;code>Continuous Deployment&lt;/code> &lt;code>DevOps&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> experience with CI/CD, GitHub, Python package deployment&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Moderate&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="mailto:oelek@ucsc.edu">Oskar Elek&lt;/a>, &lt;a href="mailto:anishagoel14@gmail.com">Anisha Goel&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>The objective is to setup a CI/CD pipeline that automates the build testing and deployment of the software. The resulting process needs to be robust to contributor errors and work in the distributed conditions of a diverse contributor base.&lt;/p>
&lt;p>Specific tasks:&lt;/p>
&lt;ul>
&lt;li>Automate continuous building, testing, merging and deployment for PolyPhy in GitHub.&lt;/li>
&lt;li>Publish the CI/CD metrics and build assets to the project webpage.&lt;/li>
&lt;li>Work with other contributors in educating them about the best practices of using the developed CI/CD pipeline.&lt;/li>
&lt;li>Add support for automated packaging using common management systems (pip, Anaconda).&lt;/li>
&lt;/ul>
&lt;h3 id="refine-polyphys-ui-and-develop-new-functional-elements">Refine PolyPhy&amp;rsquo;s UI and develop new functional elements&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> &lt;code>UI/UX&lt;/code> &lt;code>Visual Experience&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> Python programming, UI/UX development experience, (knowledge of graphics)&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Moderate&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="mailto:oelek@ucsc.edu">Oskar Elek&lt;/a>, &lt;a href="mailto:dabramov@ucsc.edu">David Abramov&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>The key feature of PolyPhy is its interactivity. By interacting with the underlying simulation model, the user can adjust its parameters in real time and respond to its behavior. For instance, an astrophysics expert can load a dataset of 100k galaxies and reconstruct the large-scale structure of the intergalactic medium. A responsive UI combined with real-time visualization allows them to judge the fidelity of the reconstruction and make necessary changes.&lt;/p>
&lt;p>Specific tasks:&lt;/p>
&lt;ul>
&lt;li>Implement a platform-agnostic UI to house PolyPhy&amp;rsquo;s main rendering context as well as secondary analytics.&lt;/li>
&lt;li>Work with the visualization developer (see below) to integrate the rendering functionality.&lt;/li>
&lt;li>Optimize to UI&amp;rsquo;s performance.&lt;/li>
&lt;li>Test the implementation on different OS platforms.&lt;/li>
&lt;/ul>
&lt;h3 id="create-new-data-visualization-regimes">Create new data visualization regimes&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> &lt;code>Interactive Visualization&lt;/code> &lt;code>Data Analytics&lt;/code> &lt;code>3D Rendering&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> basic graphics theory and math, Python, GPU programming, (previous experience visualizing novel datasets)&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Challenging&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="mailto:oelek@ucsc.edu">Oskar Elek&lt;/a>, &lt;a href="mailto:dabramov@ucsc.edu">David Abramov&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Data visualization is one of the core components of PolyPhy, as it provides a real-time overview of the underlying MCPM simulation. Through the feedback provided by the visualization, PolyPhy users can adjust the simulation model and make new findings about the dataset. Various operations over the reconstructed data (e.g. spatial searching) as well as important statistical summaries also benefit from clear visual presentation.&lt;/p>
&lt;p>Specific tasks:&lt;/p>
&lt;ul>
&lt;li>Develop novel ways of visualizing scientific data in PolyPhy.&lt;/li>
&lt;li>Work with diverse data modalities - point clouds, graphs, scalar and vector fields.&lt;/li>
&lt;li>Add support for visualizing metadata, such as annotations and labels.&lt;/li>
&lt;li>Create UI elements for plotting statistical summaries computed in real-time.&lt;/li>
&lt;/ul>
&lt;h3 id="discrete-graph-extraction-from-simulated-scalar-fields">Discrete graph extraction from simulated scalar fields&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> &lt;code>Graph Theory&lt;/code> &lt;code>Data Science&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> good understanding of discrete math and graph theory, Python, (GPU programming)&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Challenging&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="mailto:oelek@ucsc.edu">Oskar Elek&lt;/a>, &lt;a href="mailto:farhasan@nmsu.edu">Farhanul Hasan&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Develop a custom method for graph extraction from scalar field data produced by PolyPhy. Because PolyPhy typically produces network-like structures, representing these structures as weighted discrete graphs is very useful for efficiently navigating the data. The most important property of this abstracted representation is that it preserves the topology of the base scalar field by navigating the 1D ridges of the scalar field.&lt;/p>
&lt;p>Specific tasks:&lt;/p>
&lt;ul>
&lt;li>Become familiar with different algorithms for graph growing and skeleton extraction.&lt;/li>
&lt;li>Implement the most suitable method in PolyPhy, interpreting the source scalar field as a throughput (transport) network. The weights of the resulting graph need to reflect the source throughputs between the respective node locations.&lt;/li>
&lt;li>Implement common graph operations, e.g. hierarchical clustering and reduction, shortest path between two nodes, range queries.&lt;/li>
&lt;li>Optimize the runtime of the implemented methods.&lt;/li>
&lt;li>Work with the visualization developer (see above) to visualize the resulting graphs.&lt;/li>
&lt;/ul></description></item><item><title>Proactive Data Containers (PDC)</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre22/lbl/pdc/</link><pubDate>Mon, 07 Nov 2022 10:15:56 -0700</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre22/lbl/pdc/</guid><description>&lt;p>&lt;a href="https://sdm.lbl.gov/pdc/about.html" target="_blank" rel="noopener">Proactive Data Containers&lt;/a> (PDC) are containers within a locus of storage (memory, NVRAM, disk, etc.) that store science data in an object-oriented manner. Managing data as objects enables powerful optimization opportunities for data movement and
transformations, and storage mechanisms that take advantage of the deep storage hierarchy and enable automated performance tuning&lt;/p>
&lt;h3 id="python-interface-to-an-object-centric-data-management-system">Python interface to an object-centric data management system&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: &lt;code>Python&lt;/code>, &lt;code>object-centric data management&lt;/code>, &lt;code>PDC&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: Python, C, PDC&lt;/li>
&lt;li>&lt;strong>Difficulty&lt;/strong>: Medium&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong>: Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentor&lt;/strong>: &lt;a href="mailto:sbyna@lbl.gov">Suren Byna&lt;/a>, &lt;a href="mailto:htang4@lbl.gov">Houjun Tang&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>&lt;a href="https://sdm.lbl.gov/pdc/about.html" target="_blank" rel="noopener">Proactive Data Containers (PDC)&lt;/a> is an object-centric data management system for scientific data on high performance computing systems. It manages objects and their associated metadata within a locus of storage (memory, NVRAM, disk, etc.). Managing data as objects enables powerful optimization opportunities for data movement and transformations, and storage mechanisms that take advantage of the deep storage hierarchy and enable automated performance tuning. Currently PDC has a C interface. Providing a python interface would make it easier for more Python applications to utilize it.&lt;/p></description></item><item><title>Skyhook Data Management</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre22/ucsc/skyhookdm/</link><pubDate>Mon, 07 Nov 2022 10:15:56 -0700</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre22/ucsc/skyhookdm/</guid><description>&lt;p>&lt;a href="https://iris-hep.org/projects/skyhookdm.html" target="_blank" rel="noopener">SkyhookDM&lt;/a>&lt;/p>
&lt;p>The Skyhook Data Management project extends object storage with data
management functionality for tabular data. SkyhookDM enables storing and query
tabular data in the &lt;a href="https://ceph.io" target="_blank" rel="noopener">Ceph&lt;/a> distributed object storage system. It thereby
turns Ceph into an &lt;a href="https://arrow.apache.org" target="_blank" rel="noopener">Apache Arrow&lt;/a>-native
storage system, utilizing the Arrow Dataset API to store and query data with server-side data processing, including selection and projection that can significantly reduce the data returned to the client.&lt;/p>
&lt;p>SkyhookDM is now part of Apache Arrow (see &lt;a href="https://arrow.apache.org/blog/2022/01/31/skyhook-bringing-computation-to-storage-with-apache-arrow/" target="_blank" rel="noopener">blog post&lt;/a>).&lt;/p>
&lt;hr>
&lt;h3 id="support-reading-from-skyhook-in-daskray-using-the-arrow-dataset-api">Support reading from Skyhook in Dask/Ray using the Arrow Dataset API&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: &lt;code>Arrow&lt;/code>, &lt;code>Dask/Ray&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: C++&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong>: 175 hours&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Medium&lt;/li>
&lt;/ul>
&lt;ul>
&lt;li>&lt;strong>Mentor&lt;/strong>: &lt;a href="mailto:jayjeetc@ucsc.edu">Jayjeet Chakraboorty&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Problem:&lt;/strong> Dask and Ray are parallel-computing frameworks similar to Apache Spark but in a Python ecosystem. Each of these frameworks support reading tabular data from different data sources such as a local filesystem, cloud object stores, etc. These systems have recently added support for the Arrow Dataset API to read data from different sources. Since, the Arrow dataset API supports Skyhook, we can leverage this capability to offload compute-heavy Parquet file decoding and decompression into the Ceph storage layer. This can help us speed up the queries significantly as CPU will get freed up in the Dask/Ray workers for other processing tasks.&lt;/p>
&lt;h3 id="implement-gandiva-based-query-executor-in-skyhookdm">Implement Gandiva based query executor in SkyhookDM&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: &lt;code>Arrow&lt;/code>, &lt;code>Gandiva&lt;/code>, &lt;code>SIMD&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: C++&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong>: 350 hours&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Hard&lt;/li>
&lt;/ul>
&lt;ul>
&lt;li>&lt;strong>Mentor&lt;/strong>: &lt;a href="mailto:jayjeetc@ucsc.edu">Jayjeet Chakraboorty&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Problem:&lt;/strong> &lt;a href="https://arrow.apache.org/blog/2018/12/05/gandiva-donation/" target="_blank" rel="noopener">Gandiva&lt;/a> allows efficient evaluation of query expressions using runtime code generation using LLVM. The generated code leverages SIMD instructions and is highly optimized for parallel processing in modern CPUs. It is natively supported by Arrow for compiling and executing expressions. SkyhookDM currently uses the Arrow Dataset API (which internally uses Arrow Compute APIs) to execute query expressions inside the Ceph OSDs. Since, the Arrow Dataset API particularly does not support Gandiva currently, the goal of this project is to add support for Gandiva in the Arrow Dataset API in order to accelerate query processing when offloaded to the storage layer. This will help Skyhook combat some of the peformance issues due to the inefficient serialization interface of Arrow.&lt;/p>
&lt;p>&lt;strong>References:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;a href="https://arrow.apache.org/blog/2018/12/05/gandiva-donation/" target="_blank" rel="noopener">https://arrow.apache.org/blog/2018/12/05/gandiva-donation/&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://www.dremio.com/subsurface/increasing-performance-with-arrow-and-gandiva/" target="_blank" rel="noopener">https://www.dremio.com/subsurface/increasing-performance-with-arrow-and-gandiva/&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://github.com/apache/arrow/tree/master/cpp/src/gandiva" target="_blank" rel="noopener">https://github.com/apache/arrow/tree/master/cpp/src/gandiva&lt;/a>&lt;/li>
&lt;/ul>
&lt;h3 id="add-ability-to-create-and-save-views-from-datasets">Add Ability to create and save views from Datasets&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: &lt;code>Arrow&lt;/code>, &lt;code>Database views&lt;/code>, &lt;code>virtual datasets&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: C++&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong>: 175 hours&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Medium&lt;/li>
&lt;/ul>
&lt;ul>
&lt;li>&lt;strong>Mentor&lt;/strong>: &lt;a href="mailto:jayjeetc@ucsc.edu">Jayjeet Chakraboorty&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Problem - Workloads may repeat the same or similar queries over time. This causes repetition of IO and compute operations, wasting resources.
Saving previous computation in the form of materialized views can provide benefit for future
workload processing.
Solution - Add a method to the Dataset API to create views from queries and save the view as an object in a separate pool with some object key that can be generated from the query that created it.&lt;/p>
&lt;p>Reference:
&lt;a href="https://docs.dremio.com/working-with-datasets/virtual-datasets.html" target="_blank" rel="noopener">https://docs.dremio.com/working-with-datasets/virtual-datasets.html&lt;/a>&lt;/p>
&lt;hr>
&lt;h3 id="integrating-delta-lake-on-top-of-skyhookdm">Integrating Delta Lake on top of SkyhookDM&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: &lt;code>data lakes&lt;/code>, &lt;code>lake house&lt;/code>, &lt;code>distributed query processing&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: C++&lt;/li>
&lt;li>&lt;strong>NSize&lt;/strong>: 175 or 350 hours&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Medium&lt;/li>
&lt;/ul>
&lt;ul>
&lt;li>&lt;strong>Mentor&lt;/strong>: &lt;a href="mailto:jayjeetc@ucsc.edu">Jayjeet Chakraboorty&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>&lt;a href="https://delta.io/" target="_blank" rel="noopener">Delta Lake&lt;/a> is a new architecture for querying big data lakes through Spark, providing transactions.
An important benefit of this integration will be to provide an SQL interface for SkyhookDM functionality, through Spark SQL.
This project will further build upon our current work connecting Spark to SkyhookDM through the Arrow Dataset API.
This would allow us to run some of the TPC-DS queries (popular set of SQL queries for benchmarking databases) on SkyhookDM easily.&lt;/p>
&lt;p>Reference: [Delta Lake paper] (&lt;a href="https://databricks.com/jp/wp-content/uploads/2020/08/p975-armbrust.pdf" target="_blank" rel="noopener">https://databricks.com/jp/wp-content/uploads/2020/08/p975-armbrust.pdf&lt;/a>)&lt;/p></description></item><item><title>Efficient Communication with Key/Value Storage Devices</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre23/ucsc/kvstore/</link><pubDate>Sun, 27 Feb 2022 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre23/ucsc/kvstore/</guid><description>&lt;p>Network key value stores are used throughout the cloud as a storage backends (eg AWS ShardStore) and are showing up in devices (eg NVMe KV SSD). The KV clients use traditional network sockets and POSIX APIs to communicate with the KV store. An advancement that has occurred in the last 2 years is a new kernel interface that can be used in lieu of the POSIX API, namely &lt;code>io_uring&lt;/code>. This new interface uses a set of shared memory queues to provide for kernel-to-user communication and permits zero copy transfer of data. This scheme avoids the overhead of system calls and can improve performance.&lt;/p>
&lt;h3 id="implement-io_uring-communication-backend">Implement &lt;code>io_uring&lt;/code> communication backend&lt;/h3>
&lt;p>&lt;strong>Topics:&lt;/strong> performance, I/O, network, key-value, storage&lt;br>
&lt;strong>Difficulty:&lt;/strong> Medium&lt;br>
&lt;strong>Size:&lt;/strong> Medium or large (120 or 150 hours)&lt;br>
&lt;strong>Mentors:&lt;/strong> &lt;a href="mailto:philip.kufeldt@seagate.com">Philip Kufeldt (Seagate)&lt;/a>, &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/aldrin-montana/">Aldrin Montana&lt;/a> (UC Santa Cruz)
&lt;strong>Contributor(s):&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/manank-patel/">Manank Patel&lt;/a>&lt;/p>
&lt;p>Seagate has been using a network-based KV HDD as a research vehicle for computational storage. This research vehicle uses open-source user library that implements a KV API by sending network protobuf-based RPCs to a network KV store. Currently it is implemented with the standard socket and POSIX APIs to communicate with the KV backend. This project would implement an &lt;code>io_uring&lt;/code> communication backend and compare the results of both implementations.&lt;/p></description></item><item><title>DirtViz 2.0 (2023)</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre23/ucsc/dirtviz/</link><pubDate>Mon, 07 Feb 2022 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre23/ucsc/dirtviz/</guid><description>&lt;p>DirtViz is a project to visualize data collected from sensors deployed in sensor networks. We have deployed a number of sensors measuring qualities like soil moisture, temperature, current and voltage in outdoor settings. This project involves extending our existing visualization stack, DirtViz 1.0 (see github), and expanding it to version 2.0. The project goal is to create a fully-fledged dataviz tool tailored to the types of data collected from embedded systems sensor networks.&lt;/p>
&lt;h3 id="visualize-sensor-data">Visualize Sensor Data&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> Data Visualization, Analytics&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> javascript, python, bash, webservers, git, embedded systems&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Easy/Moderate&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Large, 350 hours&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/colleen-josephson/">Colleen Josephson&lt;/a>, &lt;a href="mailto:sonaderi@ucsc.edu">Sonia Naderi&lt;/a>, &lt;a href="mailto:sgtaylor@ucsc.edu">Stephen Taylor&lt;/a>, &lt;a href="mailto:jtmadden@ucsc.edu">John Madden&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Specific tasks:&lt;/p>
&lt;ul>
&lt;li>Refine our web-based visualization tools to easily allow users to zoom in on date ranges, change axes, etc.&lt;/li>
&lt;li>Create a system for remote collaborators/citizen scientists to upload their own data in a secure manner&lt;/li>
&lt;li>Craft an intuitive navigation system so that data from deployment sites around the world can be easily viewed&lt;/li>
&lt;li>Document the tool thoroughly for future maintenance&lt;/li>
&lt;li>If interested, we are also open to you investigating correlations between different data streams and doing self-directed data analysis&lt;/li>
&lt;/ul></description></item></channel></rss>