<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>GSoC'24 | UCSC OSPO</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/category/gsoc24/</link><atom:link href="https://deploy-preview-1007--ucsc-ospo.netlify.app/category/gsoc24/index.xml" rel="self" type="application/rss+xml"/><description>GSoC'24</description><generator>Wowchemy (https://wowchemy.com)</generator><language>en-us</language><lastBuildDate>Sat, 02 Nov 2024 00:00:00 +0000</lastBuildDate><image><url>https://deploy-preview-1007--ucsc-ospo.netlify.app/media/logo_hub6795c39d7c5d58c9535d13299c9651f_74810_300x300_fit_lanczos_3.png</url><title>GSoC'24</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/category/gsoc24/</link></image><item><title>[Final Report] Automated Reproducibility Checklist support within StatWrap</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre24/ucsc/statwrap/20241102-adi/</link><pubDate>Sat, 02 Nov 2024 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre24/ucsc/statwrap/20241102-adi/</guid><description>&lt;p>Namaste🙏🏻! I&amp;rsquo;m &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/adi-akhilesh-singh/">Adi Akhilesh Singh&lt;/a>, and I&amp;rsquo;m excited to share my final updates on the &lt;a href="https://drive.google.com/file/d/1xV7eHL9lIWGKueQJxBks6OB_rcXCr8JY/view?usp=sharing" target="_blank" rel="noopener">Reproducibility Checklists project&lt;/a> by StatWrap, under the mentorship of &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/luke-rasmussen/">Luke Rasmussen&lt;/a>.&lt;/p>
&lt;h2 id="project-overview">Project Overview&lt;/h2>
&lt;p>This project introduces customizable reproducibility checklists in StatWrap, enabling metadata-driven and user-guided generation of checklists. The goal is to enhance the reproducibility of research projects by providing researchers with structured and comprehensive checklist to ensure their work is reproducible.&lt;/p>
&lt;h2 id="project-links">Project Links&lt;/h2>
&lt;p>Explore the StatWrap project repository and my contributions during GSoC &amp;lsquo;24:&lt;/p>
&lt;ul>
&lt;li>&lt;a href="https://github.com/StatTag/StatWrap" target="_blank" rel="noopener">StatWrap&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://github.com/StatTag/StatWrap/tree/gsoc24" target="_blank" rel="noopener">GSoC &amp;lsquo;24 Contributions&lt;/a>&lt;/li>
&lt;/ul>
&lt;h2 id="progress-and-achievements">Progress And Achievements&lt;/h2>
&lt;p>During the timeline of this project, I worked on designing the interface for the checklist page and the data structure to support the project needs.
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="Checklist Interface" srcset="
/report/osre24/ucsc/statwrap/20241102-adi/interface_hu5405d4f4fe0fcc5c29037ce596b14456_175744_0e20d5ebd32af685d0d2ccea73085611.webp 400w,
/report/osre24/ucsc/statwrap/20241102-adi/interface_hu5405d4f4fe0fcc5c29037ce596b14456_175744_3b54d1a2b420d4de3f33b717849e243e.webp 760w,
/report/osre24/ucsc/statwrap/20241102-adi/interface_hu5405d4f4fe0fcc5c29037ce596b14456_175744_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre24/ucsc/statwrap/20241102-adi/interface_hu5405d4f4fe0fcc5c29037ce596b14456_175744_0e20d5ebd32af685d0d2ccea73085611.webp"
width="760"
height="432"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
The interface was designed with user needs in mind, featuring components such as:&lt;/p>
&lt;ul>
&lt;li>URLs component to manage external links or file URIs, attached to the project.&lt;/li>
&lt;li>Images component to display project image files.&lt;/li>
&lt;li>Checklist Notes component to manage user-added notes.&lt;/li>
&lt;/ul>
&lt;p>All these assets (Files, URLs, Images) can be added to each checklist statement using the existing assets and external resources(urls) present in the project.
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="Add Asset Dialog" srcset="
/report/osre24/ucsc/statwrap/20241102-adi/addasset_huf5f93b812eac7fe9e6235b66e18b25cf_152586_046cbc4227c33853dde195b066b2af19.webp 400w,
/report/osre24/ucsc/statwrap/20241102-adi/addasset_huf5f93b812eac7fe9e6235b66e18b25cf_152586_2076fca94822416fc8dfb0806ae54833.webp 760w,
/report/osre24/ucsc/statwrap/20241102-adi/addasset_huf5f93b812eac7fe9e6235b66e18b25cf_152586_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre24/ucsc/statwrap/20241102-adi/addasset_huf5f93b812eac7fe9e6235b66e18b25cf_152586_046cbc4227c33853dde195b066b2af19.webp"
width="760"
height="432"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
Additionally, for each checklist item, StatWrap runs relevant scans to provide meaningful data based on its requirements. For example, for the item, “All the software dependencies for the project are documented,” StatWrap scans project files to list the languages and dependencies detected.
For each checklist statement supported in StatWrap, we implement methods to retrieve specific information by scanning project data. StatWrap currently supports six such checklist statements identified as foundational for ensuring research reproducibility.
Additionally, the checklist can be exported as a PDF summary, generated by StatWrap using the checklist data, with options to include notes.
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="Checklist Report" srcset="
/report/osre24/ucsc/statwrap/20241102-adi/report_hu7a01407dc27c71052bc56e4eb6e3d4fb_270768_06eff861f558dd904b00349a9a2d2717.webp 400w,
/report/osre24/ucsc/statwrap/20241102-adi/report_hu7a01407dc27c71052bc56e4eb6e3d4fb_270768_70ef332c2c3871d3a097995a59a7dd65.webp 760w,
/report/osre24/ucsc/statwrap/20241102-adi/report_hu7a01407dc27c71052bc56e4eb6e3d4fb_270768_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre24/ucsc/statwrap/20241102-adi/report_hu7a01407dc27c71052bc56e4eb6e3d4fb_270768_06eff861f558dd904b00349a9a2d2717.webp"
width="760"
height="432"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;h2 id="future-prospects">Future Prospects&lt;/h2>
&lt;p>As the project concludes, several areas for growth have emerged:&lt;/p>
&lt;ul>
&lt;li>Expanding language support within StatWrap. While StatWrap already includes key languages used in research, there is always a scope to extend compatibility to cover even more technologies.&lt;/li>
&lt;li>Options to export a data-extensive report that includes checklist and their associated scan results.
These and other enhancements, like adding new checklist statements with their scanning methods, will extend StatWrap’s impact on reproducibility in research.&lt;/li>
&lt;/ul>
&lt;h2 id="earlier-blogs">Earlier Blogs&lt;/h2>
&lt;p>If you’re interested in seeing the project’s evolution, check out my earlier posts:&lt;/p>
&lt;ul>
&lt;li>&lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre24/ucsc/statwrap/20240614-adi/">Intro Blog&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre24/ucsc/statwrap/20240916-adi/">MidTerm Blog&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Thank you for reading!&lt;/p></description></item><item><title>Final Report: Stream processing support for FasTensor</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre24/lbl/fastensor/20240830-aditya_narayan/</link><pubDate>Fri, 30 Aug 2024 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre24/lbl/fastensor/20240830-aditya_narayan/</guid><description>&lt;h1 id="final-report-stream-processing-support-for-fastensor">Final Report: Stream processing support for FasTensor&lt;/h1>
&lt;h2 id="project-description">Project Description&lt;/h2>
&lt;p>FasTensor is a scientific computing library specialized in performing computations over dense matrices that exhibit spatial locality, a characteristic often found in physical phenomena data. Our GSoC'24 project aimed to enhance FasTensor by enabling it to ingest and process live data streams from sensors and scientific equipment.&lt;/p>
&lt;h2 id="what-is-fastensor">What is FasTensor?&lt;/h2>
&lt;p>Imagine you&amp;rsquo;re working on a physical simulation or solving partial differential equations (PDEs). You&amp;rsquo;ve discretized your PDE, but now you face a new challenge: you need to run your computations fast and parallelize them across massive compute clusters.&lt;/p>
&lt;p>At this point, you find yourself describing a stencil &lt;a href="https://dl.acm.org/doi/abs/10.1145/2686745.2686756" target="_blank" rel="noopener">[1]&lt;/a> operation. But should you really spend your time tinkering with loop orders, data layouts, and countless other side-quests unrelated to your core problem?&lt;/p>
&lt;p>This is where FasTensor comes in: Describe your computation as a stencil, and it takes care of ensuring optimal execution. FasTensor lets you focus on the science, not the implementation details.&lt;/p>
&lt;h2 id="repository-links">Repository Links&lt;/h2>
&lt;ul>
&lt;li>FasTensor: &lt;a href="https://github.com/BinDong314/FasTensor" target="_blank" rel="noopener">https://github.com/BinDong314/FasTensor&lt;/a>&lt;/li>
&lt;li>My fork: &lt;a href="https://github.com/my-name/FasTensor/tree/ftstream" target="_blank" rel="noopener">https://github.com/my-name/FasTensor/tree/ftstream&lt;/a>&lt;/li>
&lt;/ul>
&lt;h3 id="prs">PR(s)&lt;/h3>
&lt;ol>
&lt;li>&lt;a href="https://github.com/BinDong314/FasTensor/pull/1" target="_blank" rel="noopener">Stream processing support for FasTensor completed.&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://github.com/BinDong314/FasTensor/pull/2" target="_blank" rel="noopener">Merge ftstream into the FasTensor repo&lt;/a>&lt;/li>
&lt;/ol>
&lt;h2 id="work-done-this-summer">Work done this summer&lt;/h2>
&lt;h3 id="develop-streaming-simulator-ftstream">Develop Streaming simulator: FTStream&lt;/h3>
&lt;p>I was first entasked by Dr. Bin to develop a stream simulator for testing the streaming capability of FasTensor. For testing purposes, a stream is characterized by file size, count, and arrival interval. FTStream can generate streams of various sizes and intervals, up to the theoretical limits of disk and filesystem. We&amp;rsquo;re talking speeds up to 2.5 GiB/s on a non-parallel NVMe!&lt;/p>
&lt;p>Writing this tool was an adventure in throughput testing and exploring APIs. I wrote multiple drivers, each for a different whim and hijinks of systems in the HPC world. Here&amp;rsquo;s a brief journey through the APIs we explored:&lt;/p>
&lt;ol>
&lt;li>
&lt;p>&lt;strong>HDF5 APIs:&lt;/strong> Pretty fast in flush-to-disk operation, but the API design strongly binds to file handles, which inhibits high throughput duplication.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>HDF5 VFL and VOL:&lt;/strong> We dabbled in these dark arts, but there be dragons! Keeping a long-term view of maintenance, we dropped the idea.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>POSIX O_DIRECT:&lt;/strong> This involved getting your buffers aligned right and handling remainders correctly. A step up, but not quite at the theoretical limits.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Linux AIO:&lt;/strong> Streaming is latency sensitive domain, to reach the theoretical limits, every syscall saved matters. Linux AIO allowed us syscall batching with &lt;code>io_submit()&lt;/code>. It took a few testing sessions to get the correct combo of queue depth, buffer size, and alignment right.&lt;/p>
&lt;/li>
&lt;/ol>
&lt;p>We settled on O_DIRECT + Linux AIO. Feel free to modify &lt;code>ftstream/fastflush.h&lt;/code> to suit your needs.&lt;/p>
&lt;img src="https://raw.githubusercontent.com/aditya-narayan5/GSoC24-Final_Report/f486087ae3e6ef1f1077c885e9352c9440848724/images/ftstream.png" width=75% height=75%>
&lt;h3 id="stream-support">Stream Support&lt;/h3>
&lt;p>FasTensor has just one simple paradigm: you give it a data source, an output data store, and your transform, and it handles all the behind-the-scenes grunt work of computing over big datasets so you can focus on your research.&lt;/p>
&lt;p>We aimed to achieve the same for streaming: Drop in the STREAM keyword, append a pattern identifying your stream, and use your usual transform.&lt;/p>
&lt;img src="https://raw.githubusercontent.com/aditya-narayan5/GSoC24-Final_Report/f486087ae3e6ef1f1077c885e9352c9440848724/images/example_code.png" width=75% height=100%>
Voila! Now your previous FasTensor code supports live data streams.
&lt;img src="https://raw.githubusercontent.com/aditya-narayan5/GSoC24-Final_Report/da34fab7a857b0223332d84a0aa1c8cdf0811761/images/fastensor_streaming_demo.gif" width=75% height=75%>
&lt;h4 id="technical-tidbits">Technical tidbits:&lt;/h4>
&lt;ul>
&lt;li>Implements a manager-worker pattern to allow us flexibility in the future to implement different stream semantics such as windowing, CPU-memory based load balancing&lt;/li>
&lt;li>Supports streams of indefinite size&lt;/li>
&lt;/ul>
&lt;h2 id="challenges">Challenges&lt;/h2>
&lt;p>HPC has its fair share of challenges. Things you take for granted might not be available there, and it takes a while to adjust to paradigms of scale and parallelization.&lt;/p>
&lt;p>For example, when developing FTStream, we found O_DIRECT is available on some parallel file systems like GPFS but not supported on Lustre/CFS. We developed a separate MPIO driver for FTStream that will be upstreamed once thoroughly tested on Lustre.&lt;/p>
&lt;h2 id="future-work">Future Work&lt;/h2>
&lt;ul>
&lt;li>Implement windowing and explore more advanced stream semantics.&lt;/li>
&lt;li>Implement support for for defining workload policies&lt;/li>
&lt;li>Optimize interleaving IO and Compute.&lt;/li>
&lt;/ul>
&lt;h2 id="references">References&lt;/h2>
&lt;p>[1] Anshu Dubey. 2014. Stencils in Scientific Computations. In Proceedings of the Second Workshop on Optimizing Stencil Computations (WOSC &amp;lsquo;14). Association for Computing Machinery, New York, NY, USA, 57.
&lt;a href="https://doi.org/10.1145/2686745.2686756" target="_blank" rel="noopener">https://doi.org/10.1145/2686745.2686756&lt;/a>&lt;/p>
&lt;h2 id="acknowledgement">Acknowledgement&lt;/h2>
&lt;p>I struck gold when it comes to mentors.&lt;/p>
&lt;p>Dr. &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/bin-dong/">Bin Dong&lt;/a> was really kind and supportive throughout the journey. From the very first steps of giving a tour around the codebase to giving me a lot of freedom to experiment, refactor, and refine.&lt;/p>
&lt;p>Dr. &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/john-wu/">John Wu&lt;/a> was encouraging and nurturing of budding talent. We had great research presentations every Monday apart from usual mentor interactions, where different research groups presented their talks and students were invited to present their progress.&lt;/p>
&lt;p>I&amp;rsquo;ve come across Quantum computing many times in the news, but I never thought I&amp;rsquo;d get a frontline preview from the researchers working at the bleeding edge at the Lawrence Berkeley National Laboratory (LBL).&lt;/p>
&lt;p>This GSoC experience, made possible by Google and UC OSPO, has been invaluable for my growth as a developer and researcher.&lt;/p>
&lt;p>For people interested in HPC, ML, Systems, or Reproducibility, I encourage you all to apply to UC OSPO. It&amp;rsquo;s been an incredible journey, and I&amp;rsquo;m grateful for every moment of it!&lt;/p></description></item><item><title>Midterm Report : Halfway through medicinal data visulaization using PolyPhy/Polyglot</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre24/ucsc/polyphy/20240719-ayushsharma/</link><pubDate>Mon, 12 Aug 2024 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre24/ucsc/polyphy/20240719-ayushsharma/</guid><description>&lt;h2 id="introduction">Introduction&lt;/h2>
&lt;p>Hello! My name is &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/ayush-sharma/">Ayush Sharma&lt;/a>, a machine learning engineer and researcher based out of Chandigarh, a beautiful city in Northern India known for its modern architecture and green spaces.
For the last month and a half I have been working closely with my mentors &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/oskar-elek/">Oskar Elek&lt;/a> and &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/kiran-deol/">Kiran Deol&lt;/a> on the project titled &lt;a href="%5cproject%5cosre24%5cucsc%5cpolyphy">Unveiling Medicine Patterns: 3D Clustering with Polyphy/Polyglot&lt;/a>as part of GSoC 2024.&lt;/p>
&lt;h2 id="progress-and-challenges">Progress and Challenges&lt;/h2>
&lt;p>The project focuses on developing effective clustering algorithms to visualize medicine data in three dimensions using PolyPhy and Polyglot. My journey began with data preprocessing and cleaning, where unnecessary data points were removed, and missing values were addressed.&lt;/p>
&lt;p>One of the primary techniques we&amp;rsquo;ve employed is UMAP (Uniform Manifold Approximation and Projection). UMAP&amp;rsquo;s ability to preserve the global structure of the data while providing meaningful clusters proved advantageous. Initial experiments with UMAP on datasets of various sizes (ranging from 1,500 to 15,000 medicines) provided valuable insights into the clustering patterns. By iteratively halving the dimensions and refining the parameters, we achieved more accurate clustering results.&lt;/p>
&lt;p>
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="UMAP on a dataset of 15000 medicines" srcset="
/report/osre24/ucsc/polyphy/20240719-ayushsharma/umap_hua68b3da7cb5e27475c0ecf687ad0d87a_123755_48eb545fa0673e23a0ff289b6fdac6cd.webp 400w,
/report/osre24/ucsc/polyphy/20240719-ayushsharma/umap_hua68b3da7cb5e27475c0ecf687ad0d87a_123755_12b5cf998e90e476fdd4e6c9800cc63e.webp 760w,
/report/osre24/ucsc/polyphy/20240719-ayushsharma/umap_hua68b3da7cb5e27475c0ecf687ad0d87a_123755_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre24/ucsc/polyphy/20240719-ayushsharma/umap_hua68b3da7cb5e27475c0ecf687ad0d87a_123755_48eb545fa0673e23a0ff289b6fdac6cd.webp"
width="679"
height="603"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;p>To complement UMAP, we explored t-SNE (t-distributed Stochastic Neighbor Embedding). t-SNE&amp;rsquo;s focus on local relationships helped in understanding finer details within the clusters. By adjusting t-SNE parameters and conducting perturbations, we could better comprehend the data&amp;rsquo;s behavior. Combining UMAP with t-SNE in a loop, halving dimensions iteratively, showed promise, allowing us to leverage the strengths of both techniques to enhance clustering accuracy.&lt;/p>
&lt;p>
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="t-SNE on a dataset of 15000 medicines" srcset="
/report/osre24/ucsc/polyphy/20240719-ayushsharma/t-SNE_hu27c25081a80397a68d5439e1a165b2a0_67619_505feb5f73fb8656ef98cfa71acfb53b.webp 400w,
/report/osre24/ucsc/polyphy/20240719-ayushsharma/t-SNE_hu27c25081a80397a68d5439e1a165b2a0_67619_fc473d7fb06ab1b2e2bafbb3b86db867.webp 760w,
/report/osre24/ucsc/polyphy/20240719-ayushsharma/t-SNE_hu27c25081a80397a68d5439e1a165b2a0_67619_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre24/ucsc/polyphy/20240719-ayushsharma/t-SNE_hu27c25081a80397a68d5439e1a165b2a0_67619_505feb5f73fb8656ef98cfa71acfb53b.webp"
width="760"
height="527"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;p>We also experimented with pre-trained models like BERT and Glove to create embeddings for the medicines. BERT’s splitting of salts into subparts and Glove’s limitations in recognizing specific salts led us to inaccurate clustering and we&amp;rsquo;ve been working on improving it for the time being.&lt;/p>
&lt;h2 id="next-steps">Next Steps&lt;/h2>
&lt;p>Moving forward, I will focus on refining our clustering and embedding techniques to enhance overall accuracy. This involves integrating Jaccard distance alongside other distance measures to improve similarity assessments between medicines and clusters. Additionally, I&amp;rsquo;ll continue experimenting with advanced models like gpt,CLIP, gemini etc., for better embeddings while addressing the limitations of BERT and Glove by leveraging custom embeddings created with transformers and one-hot encoding. Optimization of UMAP and t-SNE algorithms will also be crucial, ensuring their effectiveness in clustering and visualization. These steps aim to overcome current challenges and further advance the project&amp;rsquo;s goals.&lt;/p></description></item><item><title>Midway Through GSoC</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre24/lbl/drishti/20240714-jaytau/</link><pubDate>Wed, 31 Jul 2024 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre24/lbl/drishti/20240714-jaytau/</guid><description>&lt;p>Hello everyone! I&amp;rsquo;m &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/joel-tony/">Joel Tony&lt;/a>, and I&amp;rsquo;m excited to share my progress update on the &lt;a href="https://github.com/hpc-io/drishti" target="_blank" rel="noopener">Drishti&lt;/a> project as part of my Google Summer of Code (GSoC) experience. Over the past few weeks, I&amp;rsquo;ve been diving deep into the world of I/O visualization for scientific applications, and I&amp;rsquo;m thrilled to tell you about the strides we&amp;rsquo;ve made.&lt;/p>
&lt;h2 id="what-is-drishti">What is Drishti?&lt;/h2>
&lt;p>For those unfamiliar with Drishti, it&amp;rsquo;s an application used to visualize I/O traces of scientific applications. When running complex scientific applications, understanding their I/O behavior can be challenging. Drishti steps in to parse logs from various sources, with a primary focus on those collected using &lt;a href="https://wordpress.cels.anl.gov/darshan/" target="_blank" rel="noopener">Darshan&lt;/a>, a lightweight I/O characterization tool for HPC applications. Drishti provides human-interpretable insights on how to improve I/O performance based on these logs. While Drishti supports multiple log sources, our current work emphasizes Darshan logs due to their comprehensive I/O information. Additionally, Drishti offers visually appealing and easy-to-understand graphs to help users better grasp their application&amp;rsquo;s I/O patterns, making it easier to identify bottlenecks and optimize performance.&lt;/p>
&lt;h2 id="progress-and-challenges">Progress and Challenges&lt;/h2>
&lt;h3 id="export-directory-feature">Export Directory Feature&lt;/h3>
&lt;p>One of the first features I implemented was the export directory functionality. In earlier versions of Drishti, users couldn&amp;rsquo;t select where they wanted their output files to be saved. This became problematic when working with read-only log locations. I familiarized myself with the codebase, created a pull request, and successfully added this feature, allowing users to choose their preferred output location.&lt;/p>
&lt;h3 id="ci-improvements-and-cross-project-dependencies">CI Improvements and Cross-Project Dependencies&lt;/h3>
&lt;p>While working on Drishti, I discovered the tight coupling between various tools in the HPC I/O organization, such as Drishti and DXT Explorer. This highlighted the need for improved Continuous Integration (CI) practices. We currently run about eight GitHub Actions for each pull request, but they don&amp;rsquo;t adequately test the interactions between different branches of these interconnected tools. This is an area we&amp;rsquo;ve identified for future improvement to ensure smoother integration and fewer conflicts between projects.&lt;/p>
&lt;h3 id="refactoring-for-multi-file-support">Refactoring for Multi-File Support&lt;/h3>
&lt;p>The bulk of my time was spent refactoring Drishti to extend its framework from parsing single Darshan files to handling multiple files. This task was more complex than it initially appeared, as Drishti&amp;rsquo;s insights are based on the contents of each Darshan file. When dealing with multiple files, we needed to find a way to aggregate the data meaningfully without sacrificing on performance.&lt;/p>
&lt;p>The original codebase had a single, thousand-line function for parsing Darshan files. To improve this, I implemented a data class structure in Python. This refactoring allows for:&lt;/p>
&lt;ol>
&lt;li>Better separation of computation and condition checking&lt;/li>
&lt;li>Easier parallelization of processing multiple traces&lt;/li>
&lt;li>Finer-grained profiling of performance bottlenecks&lt;/li>
&lt;li>More flexibility in data manipulation and memory management&lt;/li>
&lt;/ol>
&lt;h2 id="learnings-and-skills-gained">Learnings and Skills Gained&lt;/h2>
&lt;p>Through this process, I&amp;rsquo;ve gained valuable insights into:&lt;/p>
&lt;ol>
&lt;li>Refactoring large codebases&lt;/li>
&lt;li>Understanding and improving cross-project dependencies&lt;/li>
&lt;li>Implementing data classes in Python for better code organization&lt;/li>
&lt;li>Balancing performance with code readability and maintainability&lt;/li>
&lt;/ol>
&lt;h2 id="next-steps">Next Steps&lt;/h2>
&lt;p>As I move forward with the project, my focus will be on:&lt;/p>
&lt;ol>
&lt;li>Adding unit tests for individual methods to ensure functionality&lt;/li>
&lt;li>Exploring alternative data frame implementations like Polars for better performance&lt;/li>
&lt;li>Developing aggregation methods for different types of data across multiple Darshan files&lt;/li>
&lt;li>Optimizing memory usage and computational efficiency for large datasets&lt;/li>
&lt;/ol>
&lt;h2 id="conclusion">Conclusion&lt;/h2>
&lt;p>Working on Drishti has been an incredible learning experience. I&amp;rsquo;ve had the opportunity to tackle real-world challenges in scientific computing and I/O visualization. As we progress, I&amp;rsquo;m excited about the potential impact of these improvements on the scientific community&amp;rsquo;s ability to optimize their applications&amp;rsquo; I/O performance.&lt;/p>
&lt;p>I&amp;rsquo;m grateful for this opportunity and looking forward to the challenges and discoveries that lie ahead in the second half of my GSoC journey. Stay tuned for more updates as we continue to enhance Drishti!&lt;/p>
&lt;p>If you have any questions or would like to learn more about the project, feel free to &lt;a href="https://www.jaytau.com/#contact?ref=uc-ospo" target="_blank" rel="noopener">reach out to me&lt;/a>. Let&amp;rsquo;s keep pushing the boundaries of scientific computing together!&lt;/p></description></item><item><title>Streaming into the Future: Adding Real-Time Processing to FasTensor</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre24/lbl/fastensor/20240730-aditya_narayan/</link><pubDate>Tue, 30 Jul 2024 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre24/lbl/fastensor/20240730-aditya_narayan/</guid><description>&lt;p>Hey there, HPC enthusiasts and fellow coders! I&amp;rsquo;m excited to share my progress on this summer&amp;rsquo;s Google Summer of Code project under UC OSPO&amp;rsquo;s FasTensor.
Here&amp;rsquo;s a glimpse into how we&amp;rsquo;re pushing the boundaries of real-time data processing.&lt;/p>
&lt;h2 id="the-big-picture-fastensor-and-hpc-challenges">The Big Picture: FasTensor and HPC Challenges&lt;/h2>
&lt;p>First, a quick refresher: FasTensor is our go-to tool for handling dense arrays in scientific computing. It tackles three major HPC challenges:&lt;/p>
&lt;ul>
&lt;li>
&lt;p>Optimizing computations&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Distributing data efficiently&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Balancing workloads across computing cores&lt;/p>
&lt;/li>
&lt;/ul>
&lt;p>FasTensor excels at these tasks, especially when dealing with data that has structural locality - a common feature in scientific computing. Here, the Stencil computations come in handy, capturing data locality for operations like solving partial differential equations in physical simulations.&lt;/p>
&lt;h3 id="the-mission-bringing-fastensor-into-real-time">The Mission: Bringing FasTensor into Real-Time&lt;/h3>
&lt;p>While FasTensor is great at processing existing data, the next frontier is handling live data streams from scientific instruments and sensors. That&amp;rsquo;s where my GSoC project comes in: adding stream processing capabilities to FasTensor.&lt;/p>
&lt;h2 id="progress-highlights">Progress Highlights:&lt;/h2>
&lt;h3 id="building-a-stream-simulator">Building a Stream Simulator&lt;/h3>
&lt;p>We&amp;rsquo;ve created FTstream, a nifty tool that simulates data streams. It can generate streams of various sizes and intervals, pushing the limits of what your disk can handle. We&amp;rsquo;re talking speeds up to 2.5 GiB/s on a non-parallel NVMe! This tool is crucial because many scientific instruments, from particle accelerators to radio telescopes, generate massive amounts of data at incredible speeds and we need to able to simulate that. For context, that&amp;rsquo;s faster than a 10MP RGB camera shooting at 35 frames per second that generates data at ~1 GiB/s.
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="FTStream: a stream simulator" srcset="
/report/osre24/lbl/fastensor/20240730-aditya_narayan/ftstream_hu742d341e5ed79c96d79ca4fdb4fe00ee_107361_e1ff5502d16324d112780cafc587c0bb.webp 400w,
/report/osre24/lbl/fastensor/20240730-aditya_narayan/ftstream_hu742d341e5ed79c96d79ca4fdb4fe00ee_107361_9ecceb72d631078c6b5109deaefeb0f5.webp 760w,
/report/osre24/lbl/fastensor/20240730-aditya_narayan/ftstream_hu742d341e5ed79c96d79ca4fdb4fe00ee_107361_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre24/lbl/fastensor/20240730-aditya_narayan/ftstream_hu742d341e5ed79c96d79ca4fdb4fe00ee_107361_e1ff5502d16324d112780cafc587c0bb.webp"
width="760"
height="410"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;h3 id="optimizing-io-strategies">Optimizing I/O Strategies&lt;/h3>
&lt;p>We&amp;rsquo;ve been experimenting with various I/O approaches to optimize high-speed data stream handling.&lt;/p>
&lt;h3 id="exploring-streaming-semantics">Exploring Streaming Semantics&lt;/h3>
&lt;p>We&amp;rsquo;re investigating various ways to express and execute stream transformations, to ensure that FasTensor can handle a wide range of streaming computations.&lt;/p>
&lt;h3 id="developing-io-drivers">Developing I/O Drivers&lt;/h3>
&lt;p>We&amp;rsquo;ve developed two new I/O drivers based on LinuxAIO and MPI IO to ingest incoming data smoothly and maintain stream consistency.&lt;/p>
&lt;h2 id="whats-next">What&amp;rsquo;s Next?&lt;/h2>
&lt;h3 id="putting-it-all-together">Putting It All Together&lt;/h3>
&lt;p>We&amp;rsquo;re in the final stretch of integrating all these components into a seamless stream processing system.&lt;/p>
&lt;h3 id="rigorous-testing">Rigorous Testing&lt;/h3>
&lt;p>We&amp;rsquo;ll push our stream processing to its limits, simulating diverse data flows to ensure rock-solid performance in any scientific setting.&lt;/p>
&lt;h3 id="hpc-environment-validation">HPC Environment Validation&lt;/h3>
&lt;p>The ultimate test will be running our new streaming capabilities in real HPC environments, checking how they perform with different I/O setups and computing paradigms.&lt;/p>
&lt;h2 id="wrapping-up">Wrapping Up&lt;/h2>
&lt;p>This summer has been a whirlwind of coding, testing, and learning. We&amp;rsquo;re making significant strides in bringing real-time processing capabilities to FasTensor, which could open up exciting new possibilities in scientific computing and data analysis.
Stay tuned for more updates as we finalize this feature. If you&amp;rsquo;re interested in the nitty-gritty technical details or want to check out the code, feel free to reach out or check our project repository.
Happy coding, and may your computations be ever faster!&lt;/p></description></item><item><title>Enhancing h5bench with HDF5 Compression Capability</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre24/lbl/h5bench/20240731-henryz/</link><pubDate>Sat, 27 Jul 2024 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre24/lbl/h5bench/20240731-henryz/</guid><description>&lt;h1 id="introduction">Introduction&lt;/h1>
&lt;p>As part of the &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre24/lbl/h5bench">h5bench&lt;/a> project my &lt;a href="https://summerofcode.withgoogle.com/myprojects/details/n0H28Z40" target="_blank" rel="noopener">Enhencing h5bench with HDF5 Compression Capability&lt;/a> under the mentorship of Dr. &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/jean-luca-bez/">Jean Luca Bez&lt;/a> and Dr. Suren Byna aims to allow users of h5bench to incoporate compression features in their simulations by creating custom benchmarks with common scientific lossless &amp;amp; lossy compression algorithms such as SZ, SZ3, ZFP, and GZIP.&lt;/p>
&lt;p>The problem I am trying to solve is to implement multiple data compression algorithms in h5bench core access patterns through HDF5 filters. This capability should grant users the flexibility to configure the parameters and methods of compression applied to their datasets according to their specific needs and preferences. My solution primarily involves using a user-defined HDF5 filter mechanism to implement lossless and lossy compression algorithms, such as ZFP, SZ, and cuSZ. Throughout the process, I will deliver one C source code implementing compression configuration settings, one C source code implementing lossless and lossy algorithms, a set of performance reports before and after data compression in CSV and standard output files, and a technical documentation on h5bench user manual website.&lt;/p>
&lt;h1 id="midterm-blog">Midterm Blog&lt;/h1>
&lt;p>This summer, after completing my junior year, I was honored to have the opportunity working with Dr. Jean Luca Bez and Dr. Suren Byna on the h5bench, an open-source benchmarking project designed to simulate runnning sync/async HDF5 I/O on HPC machines. This post will cover mostly what I have learned, produced, planned, and thoughts over the first six weeks.&lt;/p>
&lt;p>First of all, let&amp;rsquo;s define some of the terms here. HDF5 stands for Hierarchical Data Format 5. Unlike other data storage formats (JSON, CSV, XML&amp;hellip;), HDF5 is not only a container that manages data similar to a file system, but also a powerful library that gives you the ability to perform I/O (Inputs/Outputs) operations between memory and file. One of the reasons this tool is commonly used by HPC applications is that it also supports MPI I/O, which is a protocol for parallel computing (you can think of it as the parallel version of POSIX). With exabytes of data and high frequencies of usage for analysis in scientific studies, HDF5 is perfect for the job. Essentially, h5bench is a software that tests the hardware&amp;rsquo;s performance through HDF5 (it also provides other benchmark kernels such as AMReX, E3SM-IO, MACSio, and openPMD-api, but my job focuses on using vanilla HDF5 I/O).&lt;/p>
&lt;p>So, what I have done so far? Frist, my job is to allow users to tune input parameters regarding data compression, and make sure h5bench prints accurate benchmark results with the intended compression algorithm applied to their datasets. h5bench&amp;rsquo;s frondend is written in Python, which takes an input of a JSON file from user and parses it into a CFG configuration file that can be read by the backend later, which is written in C. I created a new enum struct and made user able to specify one from a range of compression algorithms (SZ3, ZFP, LZ4, GZIP, and other pre-defined algorithms). I also made it possible to apply these algorithms to the datasets, so the .h5 (an HDF5 file) would contain chunks of compressed data after multiple H5Dwrite calls.&lt;/p>
&lt;p>Next, the challenges and gains. Throughout the first six weeks, 30% of the time was spent on understanding the newest version of h5bench and HDF5 by reading through C source codes and documentations, and asking many dumb questions to my mentors (thanks to their patience and great answers :D). Writing code is fairly easy after I really understood what the program is doing. By that I mean you have to understand every line in almost all functions and how each and every variables change. 40% of the time was used on debugging and testing the compression algorithm, mainly SZ3. To make code behaves correctly is another level of difficulty. Most of the issues resulted from failing to configure the application and dependent libraries correctly. Without necessary macros enabled during the build process, features like compression filter plugin will not run. As I was also new to CMake and HPC environment, I learned that new envrionment variables will be reset for every new session, even if you requested a compute node resource. Besides getting used to the standard build sequence: &amp;ldquo;cmake ..&amp;rdquo;, &amp;ldquo;make&amp;rdquo;, &amp;ldquo;make install&amp;rdquo;, I also learned to use &amp;ldquo;ccmake ..&amp;rdquo; to examine the flags of the compiled program. The rest of time I learned more about parallel computing, HDF5, compression algorithms, by reading some papers and documentations. A lot of notes were taken (I must say a good note taking system is the game changer). Last but not the least, I also spent times synchronizing online and offline with my mentors to discuess problems. Without their help, I can never make this far.&lt;/p>
&lt;p>My next phase will tackle these problems, here I am just offering a list:&lt;/p>
&lt;ul>
&lt;li>Test applying filter with other compression algorithms, and with different dimension layout of the dataset&lt;/li>
&lt;li>Add decompression capability&lt;/li>
&lt;li>Allow users to tune the auxiliary parameters for controlling the behavior of a certain compression filter H5Pset_filter(COMPRESS_INFO.dcpl_id, H5Z_FILTER_SZ3, H5Z_FLAG_MANDATORY, 0, NULL); cd_nelmts cd_values[]&lt;/li>
&lt;li>Print additional benchmark results to indicate what and how the compression filter is applied, and the compression ratio&lt;/li>
&lt;/ul></description></item><item><title>Unveiling Medicine Patterns: 3D Clustering with Polyphy/Polyglot</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre24/ucsc/polyphy/20240619-ayushsharma/</link><pubDate>Wed, 19 Jun 2024 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre24/ucsc/polyphy/20240619-ayushsharma/</guid><description>&lt;p>Hello! My name is Ayush and this summer I&amp;rsquo;ll be contributing to &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre24/ucsc/polyphy/">Polyphy&lt;/a> and &lt;a href="https://normand-1024.github.io/Bio-inspired-Exploration-of-Language-Embedding/" target="_blank" rel="noopener">Polyglot&lt;/a>, a GPU oriented agent-based system for reconstructing and visualizing optimal transport networks defined over sparse data. under the mentorship of &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/oskar-elek/">Oskar Elek&lt;/a> and &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/kiran-deol/">Kiran Deol&lt;/a>.&lt;/p>
&lt;p>For the reference here&amp;rsquo;s my &lt;a href="https://summerofcode.withgoogle.com/media/user/7a1cc1c971c5/proposal/gAAAAABmV3hljjurQ8HAS8PRRRZB2_c5vQ3clWisqad85y-gO7rNvpssnzqGlFeiYQkAb5qY5WDUoRKkxUoTHLLDXLwBvrAjSsRs1qNTYmMrFfsbs1aQrjo=.pdf" target="_blank" rel="noopener">proposal&lt;/a> for this project.&lt;/p>
&lt;p>Polyglot offers an immersive 3D visualization experience, enabling users to zoom, rotate, and delve into complex datasets.
My project aims to harness these capabilities to unlock hidden connections in the realm of medicine, specifically focusing on the relationships between drugs based on their shared salt compositions, rather than just their active ingredients. This approach promises to reveal intricate patterns and relationships that have the potential to revolutionize drug discovery, pharmacology, and personalized medicine.&lt;/p>
&lt;p>In this project, I will create custom embeddings for a vast dataset of over 600,000 medicines, capturing the relationships between their salt compositions. By visualizing these embeddings in Polyglot&amp;rsquo;s 3D space, researchers can identify previously unknown connections between medicines, leading to new insights and breakthroughs. The dynamic and interactive nature of Polyglot will empower researchers to explore these complex relationships in a very efficient and cool way, potentially accelerating the discovery of new drug interactions and therapeutic applications.&lt;/p>
&lt;p>I am really excited to work on this project. Keep following the blogs for further updates!.&lt;/p></description></item><item><title>Artificial Intelligence Explainability Accountability</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre24/ucsc/aiealab/20240614-shaburu/</link><pubDate>Fri, 14 Jun 2024 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre24/ucsc/aiealab/20240614-shaburu/</guid><description>&lt;p>Hey! I&amp;rsquo;m &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/sarthak-chowdharyshaburu/">Sarthak Chowdhary(Shaburu)&lt;/a>, and I am thrilled to share my incredible journey with the Open Source Program Office of UC Santa Cruz! Association as part of Google Summer of Code (GSoC) 2024. This experience marks a pivotal milestone in my career, offering me the chance to delve into an intriguing project while learning from the brightest minds in the open-source community. Allow me to guide you through my adventure thus far, from the nerve-wracking wait for results to the exhilarating commencement of the coding period.&lt;/p>
&lt;p>Before we start here&amp;rsquo;s my &lt;a href="https://drive.google.com/file/d/1BzKi0fXdqCgdK0UEG9zM56W6U5CeuyAP/view?usp=drive_link" target="_blank" rel="noopener">Proposal&lt;/a>.&lt;/p>
&lt;h2 id="pre-gsoc-application">Pre-GSoC Application&lt;/h2>
&lt;p>I had shortlisted 3 Organizations that i was working on &lt;/p>
&lt;ul>
&lt;li>OSPO UC Santa Cruz - Amplifying Research Impact Through Open Source&lt;/li>
&lt;li>CVAT.AI - Computer Vision Data Annotation for AI&lt;/li>
&lt;li>Emory University - Biomedical Research to Advance Medical Care&lt;/li>
&lt;/ul>
&lt;p>On the 1st of May, like many students eagerly anticipating the results of the Google Summer of Code (GSoC) 2024, I found myself glued to my screen, anxiously awaiting the clock to strike 11:30 PM IST. After what felt like an eternity of waiting, I finally received the email that changed everything: I had been selected for GSoC 2024 with the &lt;a href="https://ospo.ucsc.edu" target="_blank" rel="noopener">Open Source Program Office of UC Santa Cruz&lt;/a>!&lt;/p>
&lt;p>The first month of GSoC, known as the community bonding period, is for establishing rapport with the people working on the project. I researched about my mentor Dr. &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/leilani-h.-gilpin/">Leilani H. Gilpin&lt;/a> and build a good rapport with her, who is an Assistant Professor in Computer Science and Engineering and an affiliate of the Science &amp;amp; Justice Research Center at UC Santa Cruz. She is also a part of the AI group @ UCSC and leads the &lt;a href="https://aiea-lab.github.io/" target="_blank" rel="noopener">AI Explainability and Accountability (AIEA) Lab&lt;/a>. Her research focuses on the design and analysis of methods for autonomous systems to explain themselves. Her work has applications to robust decision-making, system debugging, and accountability. Her current work examines how generative models can be used in iterative XAIstress testing. She guided me through the necessary documentation and explained the Project demands and requirements in detail, which was invaluable for my project.&lt;/p>
&lt;h2 id="project">Project&lt;/h2>
&lt;p>The project aims to build a system that is capable of taking some input which will be the student’s code and explaining them their mistakes from low level syntax errors, compilation errors to high level issues such as overloaded variables.&lt;/p>
&lt;p>My &lt;a href="https://drive.google.com/file/d/1BzKi0fXdqCgdK0UEG9zM56W6U5CeuyAP/view?usp=drive_link" target="_blank" rel="noopener">Proposal&lt;/a> aims to create custom novel basic questions and take it up a notch by creating custom drivers for each problem, common drivers to detect low level errors and give baseline explanations for various error cases, combining these drivers to make a robust system and use third-party open source software (like monaco code editor - the editor of the web) where necessary. Write uniform and consistent feedback/explanations for Each coding problem while covering all the possible edge cases and a pipeline which will iterate the test cases and feedbacks. This benchmark suite will be used for testing the system.&lt;/p>
&lt;p>Additionally I plan on building an interface that has a roadmap from basics such as arrays, hashmaps to advanced topics such as trees, heap, backtracking along with progress bars and throws confetti on successful unit tests (important). These will be using the same benchmark suite that will be built under the hood. I will be utilizing Judge0 (open-source online code execution system) for the code execution and Monaco(open-source The Editor of the Web) as the code editor for this.&lt;/p>
&lt;p>&lt;strong>Project goals:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>
&lt;p>Project Objective: By the end of summer the software should be a
novel and robust tool for helping the community of beginner and
advanced programmers alike in learning programming by
hyper-focusing on the mistakes they make and using AI to explain to
them the how, what and why of their code. Provide clear and concise
explanations accompanied by actionable suggestions for debugging
and improvement.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Expected deliverables: A Robust eXplainable AI benchmark suite
which will be used extensively for the undergraduate AI courses and
possibly the Graduate courses as well. Along with anyone interested
in learning programming with the help of personalized AI.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Future work based on project: A beautiful Gamified interface that gets
people excited to learn programming which utilizes the above
benchmark suite would be awesome to build!&lt;/p>
&lt;/li>
&lt;/ul>
&lt;p>When I Started my programming journey (before ChatGPT😨) I personally encountered problems that were way above my skill set and I had no way of knowing so, which used to result in spending countless hours without proper feedback as to where I was going wrong. This project has a real impact on people in an innovative way which I wish I had access to at the start of my Programming journey, so working on it comes from a place of passion. Also this specific project will test my own understanding of programming and spending the summer solidifying it, that too under the
guidance of &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/leilani-h.-gilpin/">Leilani H. Gilpin&lt;/a> is a dream come true for me.&lt;/p></description></item><item><title>Developing Trustworthy Large Language Models</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre24/ucsc/aiealab/20240514-nikhilwani/</link><pubDate>Fri, 14 Jun 2024 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre24/ucsc/aiealab/20240514-nikhilwani/</guid><description>&lt;p>Hi! Thanks for stopping by.&lt;/p>
&lt;p>In this first blog post of a series of three, I’d like to introduce myself, my mentor, and my project.&lt;/p>
&lt;p>My name is Nikhil. I am an ML researcher who works at the intersection of NLP, ML, and HCI. I previously worked as a Machine Learning Engineer II at &lt;a href="https://vmware.com/" target="_blank" rel="noopener">VMware&lt;/a> and spent some wonderful summers interning with ML teams at &lt;a href="https://www.nvidia.com/" target="_blank" rel="noopener">NVIDIA&lt;/a> and &lt;a href="https://www.iitb.ac.in/" target="_blank" rel="noopener">IIT Bombay&lt;/a>. I also recently graduated from the &lt;a href="https://usc.edu/" target="_blank" rel="noopener">University of Southern California (USC)&lt;/a> with &lt;a href="https://www.cs.usc.edu/academic-programs/masters/cs_ms_honors/" target="_blank" rel="noopener">honors&lt;/a> in Computer Science and a master&amp;rsquo;s thesis.&lt;/p>
&lt;p>This year at Google Summer of Code (GSoC 24), I will be working on &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre24/ucsc/aiealab/">developing trustworthy large language models&lt;/a>. I’m very grateful to be mentored by &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/leilani-h.-gilpin/">Leilani H. Gilpin&lt;/a> at the &lt;a href="https://aiea-lab.github.io/" target="_blank" rel="noopener">AIEA lab, UC Santa Cruz&lt;/a>. I truly admire the flexibility and ownership she allows me in pursuing my ideas independently within this project. Please feel free to peruse my accepted GSoC proposal &lt;a href="https://drive.google.com/drive/folders/16DHlcHGS7psoFXYc5q2L2-GOsLwIBXl1?usp=drive_link" target="_blank" rel="noopener">here&lt;/a>.&lt;/p>
&lt;p>&lt;strong>Project:&lt;/strong>
My project has a tangible outcome: An open-source, end-to-end, full-stack web app with a hybrid trustworthy LLM in the backend.&lt;/p>
&lt;p>This open-source web app will be a lightweight tool that not only has the ability to take diverse textual prompts and connect with several LLMs and a database but also the capability to gather qualitative and quantitative user feedback. Users will be able to see how this feedback affects the LLMs&amp;rsquo; responses and impacts its reasoning and explanations (xAI). The tool will be thoroughly tested to ensure that the unit tests are passing and there is complete code coverage.&lt;/p>
&lt;p>At the moment, we are investigating LLMs and making them more trustworthy in constraint satisfaction tasks like logical reasoning and misinformation detection tasks. However, our work has applicability in other areas of Responsible AI, such as Social Norms (toxicity detection and cultural insensitivity), Reliability (misinformation, hallucination, and inconsistency), Explainability &amp;amp; Reasoning (lack of interpretability, limited logical, and causal reasoning), Safety (privacy violation and violence), and Robustness (prompt attacks and distribution shifts).&lt;/p>
&lt;p>&lt;strong>Impact:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>Responsible AI research teams across industry and academia can use this as a boilerplate for their user study projects.&lt;/li>
&lt;li>Diverse PhD students and academic researchers looking to study LLM and user interaction research will find this useful.&lt;/li>
&lt;li>LLM alignment researchers and practitioners can find this resourceful as user feedback affects the inherent rewards model of the internal LLMs.&lt;/li>
&lt;li>Explainable AI (xAI) researchers can find value in the explanations that this tool generates, which reveal interpretable insights into how modern LLMs think and use their memory.
These are just a few use cases; however, there are several others that we look forward to describing in the upcoming posts.&lt;/li>
&lt;/ul>
&lt;p>This was my first blog in the series of three for the UC OSPO. Stay tuned for the upcoming blogs, which will detail my progress at the halfway mark and the final one concluding my work.&lt;/p>
&lt;p>If you find this work interesting and would love to share your thoughts, I am happy to chat! :) Feel free to connect on &lt;a href="https://www.linkedin.com/in/nikhilwani/" target="_blank" rel="noopener">LinkedIn&lt;/a> and mention that you are reaching out from this blog post.&lt;/p>
&lt;p>It is great to meet the UC OSPO community, and thanks for reading. Bye for now.&lt;/p></description></item><item><title>Enhancing Usability and Expandability of the Open Sensing Platform project</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre24/ucsc/osp/20240614_ahmedfalah01/</link><pubDate>Fri, 14 Jun 2024 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre24/ucsc/osp/20240614_ahmedfalah01/</guid><description>&lt;p>Greetings everyone,&lt;/p>
&lt;p>I am Ahmed Falah and I am delighted to be part of the 2024 Google Summer of Code program, where I am contributing to the &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre24/ucsc/osp">Open Sensing Platform project&lt;/a>.&lt;/p>
&lt;p>My &lt;a href="https://drive.google.com/file/d/1jD2BvRBaCHfiibEcR5sJKr9GWK51RxD7/view?usp=sharing" target="_blank" rel="noopener">proposal&lt;/a> was accepted, and I am fortunate to have &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/colleen-josephson/">Colleen Josephson&lt;/a> and &lt;a href="mailto:jtmadden@ucsc.edu">John Madden&lt;/a> as my mentors. The objective of my project is to enhance usability and expandability of the Open Sensing Platform, a hardware solution for deploying sensor networks in outdoor environments. This platform utilizes low-power, long-range communication to transmit data from various sensors to a visualization dashboard. While the platform effectively collects data, its configuration process requires modifying source code to make it more user-friendly. My first steps to enhance usability of the project:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Improve User Interface (UI):&lt;/strong> Develop a user-friendly interface to interact with the platform, enabling researchers to configure the device without modifying code.&lt;/li>
&lt;li>&lt;strong>Conversion of user configuration:&lt;/strong> convert user configuration data to the Protobuf format for efficient storage and transmission.&lt;/li>
&lt;/ul>
&lt;p>Additionally, I will explore updating the NVRAM functions to interact with Protobuf messages instead of directly writing/reading raw data to NVRAM. I will also implement functions to serialize user configuration data into a Protobuf message and deserialize the message back into a data structure for use within the firmware.&lt;/p>
&lt;p>I will be posting regular updates and informative blogs throughout the summer, so stay tuned!&lt;/p></description></item><item><title>Stream Processing support for FasTensor</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre24/lbl/fastensor/20240613-aditya_narayan/</link><pubDate>Thu, 13 Jun 2024 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre24/lbl/fastensor/20240613-aditya_narayan/</guid><description>&lt;p>Hi, I&amp;rsquo;m Aditya Narayan,👋&lt;/p>
&lt;p>I&amp;rsquo;m a frequent visitor to the town square of theoretical CS, operations (Ops), and robust high-performance systems. Sometimes I indulge myself with insights on &lt;a href="https://www.science.org/doi/10.1126/science.aam9868" target="_blank" rel="noopener">Computing and Biology&lt;/a>, and other times I enjoy the accounts of minefield experiences in the &lt;a href="https://www.youtube.com/watch?v=tDacjrSCeq4" target="_blank" rel="noopener">systems world&lt;/a>. Luckily, this summer, OSRE offered an opportunity that happened to be at the perfect intersection of my interests.&lt;/p>
&lt;p>This summer, I will be working on a scientific computing library called FasTensor that offers a parallel computing structure called Stencil, widely popular in the scientific computing world to solve PDEs for Physical Simulations and Convolutions on Signals, among its many uses.
I am excited to introduce my mentors, Dr. &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/bin-dong/">Bin Dong&lt;/a> and Dr. &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/john-wu/">John Wu&lt;/a> of the &lt;a href="https://crd.lbl.gov/divisions/scidata/sdm/" target="_blank" rel="noopener">Scientific Data Management Group&lt;/a> at Lawrence Berkeley National Laboratory (LBNL). They bring invaluable expertise to the project.&lt;/p>
&lt;p>They recognized the need for a tensor processing library that provided dedicated support for big datasets with inherent structural locality, often found in the scientific computing world, which was lacking in popular open-source MapReduce or Key-Value based frameworks.&lt;/p>
&lt;p>More often than not, the operations performed on these datasets are composed of computations involving neighboring elements. This motivated the development of the FasTensor library.&lt;/p>
&lt;p>I will be working on providing a Stream Processing interface that enables online data processing of large-scale datasets as they arrive from Data Producers. The project focuses on offering rich interfaces for managing and composing streams, supporting common scientific data formats like HDF5, and integrating fault tolerance and reliability mechanisms.&lt;/p>
&lt;p>I am thrilled to work on the FasTensor project because I believe it has the potential to make a significant impact by enabling researchers to implement a rich set of computations on their big datasets in an easy and intuitive manner.&lt;/p>
&lt;p>After all, FasTensor has just one simple paradigm: A -&amp;gt; Transform(F(x), B),&lt;/p>
&lt;p>and it handles all the behind-the-scenes grunt work of handling big datasets so you can focus on your research.&lt;/p>
&lt;p>Stay tuned for updates and feel free to &lt;a href="https://github.com/BinDong314/FasTensor" target="_blank" rel="noopener">collaborate&lt;/a>!&lt;/p></description></item><item><title>Drishti</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre24/lbl/drishti/20240614-jaytau/</link><pubDate>Thu, 06 Jun 2024 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre24/lbl/drishti/20240614-jaytau/</guid><description>&lt;p>Namaste everyone! 🙏🏻&lt;/p>
&lt;p>I&amp;rsquo;m &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/joel-tony/">Joel Tony&lt;/a>, a third-year Computer Science undergraduate at BITS Pilani, Goa, India. I&amp;rsquo;m truly honored to be part of this year&amp;rsquo;s Google Summer of Code program, working with the UC OSPO organization on a project that genuinely excites me. I&amp;rsquo;m particularly grateful to be working under the mentorship of Dr. &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/jean-luca-bez/">Jean Luca Bez&lt;/a>, a Research Scientist at Lawrence Berkeley National Laboratory, and Dr. &lt;a href="https://sbyna.github.io" target="_blank" rel="noopener">Suren Byna&lt;/a>, a Full Professor at the Ohio State University. Their expertise in high-performance computing and data systems is invaluable as I tackle this project.&lt;/p>
&lt;p>My project, &amp;ldquo;&lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre24/lbl/drishti">Drishti: Visualization and Analysis of AI-based Applications&lt;/a>&amp;rdquo;, aims to extend the &lt;a href="https://github.com/hpc-io/drishti" target="_blank" rel="noopener">Drishti&lt;/a> framework to better support AI/ML workloads, focusing specifically on optimizing their Input/Output (I/O) performance. I/O refers to the data transfer between a computer&amp;rsquo;s memory and external storage devices like hard drives (HDDs) or solid-state drives (SSDs). As AI models and datasets continue to grow exponentially in size, efficient I/O management has become a critical bottleneck that can significantly impact the overall performance of these data-intensive workloads.&lt;/p>
&lt;p>Drishti is an innovative, interactive web-based framework that helps users understand the I/O behavior of scientific applications by visualizing I/O traces and highlighting bottlenecks. It transforms raw I/O data into interpretable visualizations, making performance issues more apparent. Now, I&amp;rsquo;m working to adapt these capabilities for the unique I/O patterns of AI/ML workloads.&lt;/p>
&lt;p>Through my studies in high-performance computing and working with tools like BeeGFS and Darshan, I&amp;rsquo;ve gained insights into the intricacies of I/O performance. However, adapting Drishti for AI/ML workloads presents new challenges. In traditional HPC, computing often dominates, but in the realm of AI, the tables have turned. As models grow by billions of parameters and datasets expand to petabytes, I/O has become the critical path. Training larger models or using richer datasets doesn&amp;rsquo;t just mean more computation; it means handling vastly more data. This shift makes I/O optimisation not just a performance tweak but a fundamental enabler of AI progress. By fine-tuning Drishti for AI/ML workloads, we aim to pinpoint I/O bottlenecks precisely, helping researchers streamline their data pipelines and unlock the full potential of their hardware.&lt;/p>
&lt;p>As outlined in my &lt;a href="https://docs.google.com/document/d/1zfQclXYWFswUbHuuwEU7bjjTvzS3gRCyNci08lTR3Rg/edit?usp=sharing" target="_blank" rel="noopener">proposal&lt;/a>, my tasks are threefold:&lt;/p>
&lt;ol>
&lt;li>&lt;strong>Modularize Drishti&amp;rsquo;s codebase&lt;/strong>: Currently, it&amp;rsquo;s a single 1700-line file that handles multiple functionalities. I&amp;rsquo;ll be refactoring it into focused, maintainable modules, improving readability and facilitating future enhancements.&lt;/li>
&lt;li>&lt;strong>Enable multi-trace handling&lt;/strong>: Unlike traditional HPC apps that typically generate one trace file, most AI jobs produce multiple. I&amp;rsquo;ll build a layer to aggregate these, providing a comprehensive view of the application&amp;rsquo;s I/O behavior.&lt;/li>
&lt;li>&lt;strong>Craft AI/ML-specific recommendations&lt;/strong>: Current suggestions often involve MPI-IO or HDF5, which aren&amp;rsquo;t typical in ML frameworks like PyTorch or TensorFlow. I&amp;rsquo;ll create targeted recommendations that align with these frameworks&amp;rsquo; data pipelines.&lt;/li>
&lt;/ol>
&lt;p>This summer, my mission is to make Drishti as fluent in AI/ML I/O patterns as it is in traditional HPC workloads. My goal is not just to adapt Drishti but to optimize it for the unique I/O challenges that AI/ML applications face. Whether it&amp;rsquo;s dealing with massive datasets, handling numerous small files, or navigating framework-specific data formats, we want Drishti to provide clear, actionable insights.&lt;/p>
&lt;p>From classroom theories to hands-on projects, from understanding file systems to optimizing AI workflows, each step has deepened my appreciation for the complexities and potential of high-performance computing. This GSoC project is an opportunity to apply this knowledge in a meaningful way, contributing to a tool that can significantly impact the open-source community.&lt;/p>
&lt;p>In today&amp;rsquo;s AI-driven world, the pace of innovation is often gated by I/O performance. A model that takes weeks to train due to I/O bottlenecks might, with optimized I/O, train in days—translating directly into faster iterations, more experiments, and ultimately, breakthroughs. By making I/O behavior in AI/ML applications more interpretable through Drishti, we&amp;rsquo;re not just tweaking code. We&amp;rsquo;re providing developers with the insights they need to optimize their data pipelines, turning I/O from a bottleneck into a catalyst for AI advancement.&lt;/p>
&lt;p>I look forward to sharing updates as we adapt Drishti for the AI era, focusing squarely on optimizing I/O for AI/ML workloads. In doing so, we aim to accelerate not just data transfer but the very progress of AI itself. I&amp;rsquo;m deeply thankful to Dr. Jean Luca Bez and Prof. Suren Byna for their guidance in this endeavor and to the UC OSPO and GSoC communities for this incredible opportunity.&lt;/p></description></item><item><title>Enhancing h5bench with HDF5 Compression Capability</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre24/lbl/h5bench/20240614-henryz/</link><pubDate>Mon, 27 May 2024 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre24/lbl/h5bench/20240614-henryz/</guid><description>&lt;p>As part of the &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre24/lbl/h5bench">h5bench&lt;/a> project my &lt;a href="https://summerofcode.withgoogle.com/myprojects/details/n0H28Z40" target="_blank" rel="noopener">Enhencing h5bench with HDF5 Compression Capability&lt;/a> under the mentorship of Dr. &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/jean-luca-bez/">Jean Luca Bez&lt;/a> and Dr. Suren Byna aims to allow users of h5bench to incoporate compression features in their simulations by creating custom benchmarks with common scientific lossless &amp;amp; lossy compression algorithms such as SZ, SZ3, ZFP, and GZIP.&lt;/p>
&lt;p>The problem I am trying to solve is to implement multiple data compression algorithms in h5bench core access patterns through HDF5 filters. This capability should grant users the flexibility to configure the parameters and methods of compression applied to their datasets according to their specific needs and preferences. My solution primarily involves using a user-defined HDF5 filter mechanism to implement lossless and lossy compression algorithms, such as ZFP, SZ, and cuSZ. Throughout the process, I will deliver one C source code implementing compression configuration settings, one C source code implementing lossless and lossy algorithms, a set of performance reports before and after data compression in CSV and standard output files, and a technical documentation on h5bench user manual website.&lt;/p></description></item></channel></rss>