<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>GSoC'23 | UCSC OSPO</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/category/gsoc23/</link><atom:link href="https://deploy-preview-1007--ucsc-ospo.netlify.app/category/gsoc23/index.xml" rel="self" type="application/rss+xml"/><description>GSoC'23</description><generator>Wowchemy (https://wowchemy.com)</generator><language>en-us</language><lastBuildDate>Mon, 25 Sep 2023 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'23</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/category/gsoc23/</link></image><item><title>Final GSoC Blog - Polyglot</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre23/ucsc/polyphy/20230925-kirandeol/</link><pubDate>Mon, 25 Sep 2023 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre23/ucsc/polyphy/20230925-kirandeol/</guid><description>&lt;p>As I send in my final work submission for the final GSoC evaluation, I&amp;rsquo;m excited to share with you the progress we&amp;rsquo;ve made this summer (and future plans for Polyglot!). You can view the repository and web app here: &lt;a href="https://polyphyhub.github.io/PolyGlot/" target="_blank" rel="noopener">https://polyphyhub.github.io/PolyGlot/&lt;/a>. As a quick reminder of the project, we sought to extend the Polyglot web app, as developed by Hongwei (Henry) Zhou. For context, the web app follows this methodology:&lt;/p>
&lt;ol>
&lt;li>
&lt;p>Given a set of words, use an embedding model (such as Word2Vec, BERT, etc.) to generate a set of high dimensional points associated with each word.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Use a dimensionality reduction method (such as UMAP) to reduce the dimensionality of each word-vector point to 3 dimensions&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Use the novel MCPM (Monte Carlo Physarum Machine) to compute the similarities between a set of anchor points and the rest of the point cloud. You could use any similarity metric here, too, such as the Euclidean distance.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>The web app then displays the point cloud of 3-dimensional embeddings, but uses coloring to indicate the level of MCPM similarity each word has with the anchor point (e.g, if the anchor point is the word “dog”, the rest of the point cloud is colored such that words identified as similar to “dog” by the MCPM metric are brighter, whereas dissimilar words are darker.&lt;/p>
&lt;/li>
&lt;/ol>
&lt;p>The main results since the last blog are summarized as follows:&lt;/p>
&lt;ol>
&lt;li>
&lt;p>Novel timeline feature in which users can track the importance of certain words over time by watching the change in size of points (computes the IF-IDF metric for a word across all documents in a given year). Uses linear interpolation for years which do not have an explicit importance score.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>An industrial collaboration with UK startup Lautonomy, where we have pre-processed and entered their data into Polyglot. Pre-processing consisted of first computing a high dimensional embedding of their set of words using OpenAI&amp;rsquo;s CLIP model &lt;a href="https://openai.com/research/clip" target="_blank" rel="noopener">https://openai.com/research/clip&lt;/a> and the CLIP-as-service Python package &lt;a href="https://clip-as-service.jina.ai" target="_blank" rel="noopener">https://clip-as-service.jina.ai&lt;/a>. Next, we used UMAP to reduce the dimensionality of these embeddings to 3D. We computed the Euclidean distance on this data (in place of MCPM metric). Finally, we formatted the data to enter into Polyglot.&lt;/p>
&lt;/li>
&lt;/ol>
&lt;p>Although the app has developed a lot over the summer, we are planning to continue working on Polyglot, particularly with respect to one of our original goals: to set up a pipeline from PolyPhy to Polyglot. Unfortunately, with PolyPhy undergoing refactoring this summer, we weren&amp;rsquo;t able to set this pipeline up. However, that is one of our goals for the next few months. We are also moving forward with the industrial collaboration with legal analytics startup Lautonomy. We hope to release an output together soon!&lt;/p>
&lt;p>If you&amp;rsquo;re curious about Polyglot or are interesting in getting involved, please feel free to reach out to myself, Oskar Elek, and Jasmine Otto!&lt;/p></description></item><item><title>KV store final Blog</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre23/ucsc/kvstore/20230825-manank/</link><pubDate>Fri, 25 Aug 2023 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre23/ucsc/kvstore/20230825-manank/</guid><description>&lt;p>Hello again!
Before we get started, take a look at my previous blogs, &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre23/ucsc/kvstore/20230526-manank">Introduction&lt;/a> and
&lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre23/ucsc/kvstore/20230730-manank">Mid Term&lt;/a>. The goal of the project was to implement io_uring based backend driver for client side, which was at
that time using traditional sockets. The objective was improving performance from the zero copy capabilities of io uring. In the process, I learnt about many things,
about &lt;a href="https://gitlab.com/kinetic-storage/libkinetic/-/tree/develop" target="_blank" rel="noopener">libkinetic&lt;/a> and KV stores in general.&lt;/p>
&lt;p>I started by writing a separate driver using io_uring in libkinetic/src in ktli_uring.c, most of which is similar to the sockets backend in ktli_sockets.c. The only
difference was in the send and receive functions. For more detailed description about the implementation, refer to the mid term blog.&lt;/p>
&lt;p>After the implementation, it was time to put it to test. We ran extensive benchmarks with a tool called &lt;a href="https://fio.readthedocs.io/en/latest/fio_doc.html" target="_blank" rel="noopener">fio&lt;/a>, which
is generally used to run tests on filesystems and other IO related things. Thanks to Philip, who had already written an IO engine for testing kinetic KV store (&lt;a href="https://github.com/pkufeldt/fio" target="_blank" rel="noopener">link&lt;/a>), I didn&amp;rsquo;t have much problem in setting up the testbench. Again thanks to Philip, He set up a ubuntu server with the kinetic server
and gave me access through ssh. We ran extensive tests on that server, with both socket and uring backends, with several different block sizes. The link to the benchmarks sheet can be found &lt;a href="https://docs.google.com/spreadsheets/d/1HE7-KbxSqYZ3vmTZiJYoq21P7zfymU7N/edit?usp=sharing&amp;amp;ouid=116274960434137108384&amp;amp;rtpof=true&amp;amp;sd=true" target="_blank" rel="noopener">here&lt;/a>.&lt;/p>
&lt;p>We spent a lot of time in reading and discussing the numbers, probably the most time consuming part of the project, we had several long discussions analyzing numbers
and their implications, for example in the initial tests, we were getting very high std dev in mean send times, then we figured it was because of the network
bottleneck, as we were using large block sizes and filling up the 2.5G network bandwidth quickly.&lt;/p>
&lt;p>In conclusion, we found out that there are many other major factors affecting the performance of the KV store, for example the network, and the server side of the KV
store. Thus, though io_uring offers performance benefit at the userspace-kernel level, in this case, there were other factors that had more significant effect than the
kernal IO stack on the client side. Thus, for increasing the performance, we need to look at the server side&lt;/p>
&lt;p>I would like to thank Philip and Aldrin for their unwavering support and in depth discussions on the topic in our weekly meetings, I learned a lot from them
throughout the entire duration of the project.&lt;/p></description></item><item><title>Midpoint Blog Interactive Exploration of High-dimensional Datasets with PolyPhy and Polyglot</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre23/ucsc/polyphy/20230803-kirandeol/</link><pubDate>Thu, 03 Aug 2023 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre23/ucsc/polyphy/20230803-kirandeol/</guid><description>&lt;p>The last few months of my GSoC project have been very exciting and I hope to share why with you here in this blog post! To briefly summarize, my project has been focused on further developing the Polyglot app, a tool for visualizing 3D language embeddings. One important part of Polyglot is its utilization of the novel MCPM metric, where points are colored according to their MCPM similarity to a user-chosen “anchor point” (e.g., if “hat” is our anchor point, then similar words like “cap” or “fedora” will be colored more prominently).&lt;/p>
&lt;p>The first issue we wanted to tackle was actually navigating the point cloud. With hundreds of thousands of points, it can be difficult to find what you’re looking for! Thus, the first few features added were a search bar for points and anchor points and a “jump to point” feature which changes a user’s center of rotation and “jumps” to a chosen point. There were a few hiccups with implementing these features, mainly due to the large number of points and the particular quirks of the graphics library Polyglot uses. In the end though, these simple features made it feel a lot easier to use Polyglot.&lt;/p>
&lt;p>The next set of features related to our desire to actually annotate the point cloud. Similar to how one might annotate a Google doc (ie., highlight a chunk of text and leave a comment), we wanted to set up something similar, but with points! Indeed, this led to the development of a cool brush tool for coloring points, named and commented annotations (up to 5), a search bar within annotations, and finally a button to export annotations and comments to a CSV.&lt;/p>
&lt;p>The next few weeks are looking bright as we strive to finish the PolyPhy-Polyglot pipeline (a notebook for quickly formatting MCPM data from PolyPhy and getting it into Polyglot). We also hope to add a unique “timeline” feature in which users can analyze sections of the point cloud based on the associated time of each point. Overall, it’s been a very stimulating summer and I’m excited to push this project even further!&lt;/p></description></item><item><title>Midterm: High Fidelity UAV Simulation Using Unreal Engine with specular reflections</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre23/ucsc/osavc/20230802-damodardatta/</link><pubDate>Wed, 02 Aug 2023 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre23/ucsc/osavc/20230802-damodardatta/</guid><description>&lt;p>As part of the &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre23/ucsc/osavc">Open Source Autonomous Vehicle Controller&lt;/a> my &lt;a href="https://drive.google.com/file/d/18g-WRZj_7ufIt6YZNn4OG1s7VKi1u5hV/view?usp=sharing" target="_blank" rel="noopener">proposal&lt;/a> under the mentorship of &lt;strong>Aaron Hunter and Carlos Espinosa&lt;/strong> aims to Develop a Unreal Engine based simulator for testing. The simulator will be using Unreal Engine for the physics and visualization.&lt;/p>
&lt;h2 id="what-we-have-done-so-far">What we have done so far&lt;/h2>
&lt;ul>
&lt;li>We found that we can use Unreal Engine as a physics simulator and co-simulate with Simulink using the tools provided by MathWorks.&lt;/li>
&lt;li>Simulated a example provided by MathWorks but i wasn&amp;rsquo;t getting the expected behaviour and there were very few resource available.&lt;/li>
&lt;li>So we decided with using Gazebo and ROS for simulation instead of Unreal Engine and Simulink for the example of a balancing bot which had been designed in Solidworks.&lt;/li>
&lt;li>For using Gazebo, i had converted the Solidworks model into an URDF and imported it into Gazebo.&lt;/li>
&lt;/ul>
&lt;h2 id="future-work">Future Work&lt;/h2>
&lt;p>Currently, i am working on using Gazebo and ROS for controling a balancing bot using a PID control algorithm. Afterwards document the process of import a model into Gazebo for testing a control algorithm.&lt;/p></description></item><item><title>Implemented IO uring for Key-Value Drives</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre23/ucsc/kvstore/20230730-manank/</link><pubDate>Mon, 31 Jul 2023 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre23/ucsc/kvstore/20230730-manank/</guid><description>&lt;p>Hi everyone!&lt;/p>
&lt;p>I&amp;rsquo;m Manank Patel, (&lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre23/ucsc/kvstore/20230526-manank">link&lt;/a> to my Introduction post) and am currently working on &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre23/ucsc/kvstore">Efficient Communication with Key/Value Storage Devices&lt;/a>. The goal of the project was to leverage the capabilities of io_uring and implement a new backend driver.&lt;/p>
&lt;p>In the existing sockets backend, we use non-blocking sockets with looping to ensure all the data is written. Here is a simplified flow diagram for the
same. The reasoning behind using non blocking sockets and TCP_NODELAY is to get proper network utilization. This snippet from the code explains it further.&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">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">NODELAY means that segments are always sent as soon as possible,
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">even if there is only a small amount of data. When not set,
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">data is buffered until there is a sufficient amount to send out,
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">thereby avoiding the frequent sending of small packets, which
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">results in poor utilization of the network. This option is
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">overridden by TCP_CORK; however, setting this option forces
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">an explicit flush of pending output, even if TCP_CORK is
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">currently set.
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="Sockets flow" srcset="
/report/osre23/ucsc/kvstore/20230730-manank/ktli_socket_huf9f86d17a6f220de349bb1b61ce1052f_93743_fe3f3d8030752b92e5fb87ea1d67e0c2.webp 400w,
/report/osre23/ucsc/kvstore/20230730-manank/ktli_socket_huf9f86d17a6f220de349bb1b61ce1052f_93743_44c789c0dc2dbae770c40595d35ae941.webp 760w,
/report/osre23/ucsc/kvstore/20230730-manank/ktli_socket_huf9f86d17a6f220de349bb1b61ce1052f_93743_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre23/ucsc/kvstore/20230730-manank/ktli_socket_huf9f86d17a6f220de349bb1b61ce1052f_93743_fe3f3d8030752b92e5fb87ea1d67e0c2.webp"
width="469"
height="760"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;p>In the above figure, we have a &lt;a href="https://gitlab.com/kinetic-storage/libkinetic/-/blob/manank/src/ktli_socket.c?ref_type=heads#L436" target="_blank" rel="noopener">loop&lt;/a> with a writev call, and we check the return value and if all the data has not been written, then we modify the
offsets and then loop again, otherwise, if all the data has been written, we exit the loop and return from the function. Now this works well with traditional sockets, as we get the return value from the writev call as soon as it returns. In case of io_uring, if we try to follow the same design, we get the
following flow diagram.
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="uring flow" srcset="
/report/osre23/ucsc/kvstore/20230730-manank/ktli_uring_nonb_huf47400b8be9e2650586ffc8c37d95fc6_108831_eaf262f65651ce613bf0a033f897afde.webp 400w,
/report/osre23/ucsc/kvstore/20230730-manank/ktli_uring_nonb_huf47400b8be9e2650586ffc8c37d95fc6_108831_bc898fc227145dff9464f87e8f66363f.webp 760w,
/report/osre23/ucsc/kvstore/20230730-manank/ktli_uring_nonb_huf47400b8be9e2650586ffc8c37d95fc6_108831_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre23/ucsc/kvstore/20230730-manank/ktli_uring_nonb_huf47400b8be9e2650586ffc8c37d95fc6_108831_eaf262f65651ce613bf0a033f897afde.webp"
width="417"
height="760"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;p>Here, as you can see, there are many additional steps/overhead if we want to check the return value before sending the
next writev, as we need to know how many bytes has been written till now to change the offsets and issue
the next request accordingly. Thus, in every iteration of the loop we need to to get an sqe, prep it for writev, then
submit it, and then get a CQE, and then wait for the CQE to get the return value of writev call.&lt;/p>
&lt;p>The alternate approach would be to write the full message/iovec atomically in one call, as shown in following diagram.&lt;/p>
&lt;p>
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="possible uring flow" srcset="
/report/osre23/ucsc/kvstore/20230730-manank/ktli_uring_ideal_hu2d99f0bee974127b66eb083c255358d0_60614_df20a0788e55e56bf7af70d91c7275c6.webp 400w,
/report/osre23/ucsc/kvstore/20230730-manank/ktli_uring_ideal_hu2d99f0bee974127b66eb083c255358d0_60614_056949985d6ef71540ba0c4992f11376.webp 760w,
/report/osre23/ucsc/kvstore/20230730-manank/ktli_uring_ideal_hu2d99f0bee974127b66eb083c255358d0_60614_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre23/ucsc/kvstore/20230730-manank/ktli_uring_ideal_hu2d99f0bee974127b66eb083c255358d0_60614_df20a0788e55e56bf7af70d91c7275c6.webp"
width="535"
height="760"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;p>However, on trying this method, and running fio tests, we noticed that it worked well with smaller block sizes, like
16k, 32k and 64k, but was failing constantly with larger block sizes like 512k or 1m. This was because it was not able to
write all the data to the socket in one go. This method showed good results as compared to sockets backend (for small BS
i.e). We tried to increase the send/recv buffers to 1MiB-10MiB but it still struggled with larger blocksizes.&lt;/p>
&lt;p>Going forward, we discussed a few ideas to understand the performance trade-offs. One is to use a static variable and increment it on
every loop iteration, in this way we can find out if that is really the contirbuting factor to our problem. Another idea
is to break down the message in small chunks, say 256k and and set up io uring with sqe polling and then link and submit
those requests in loop, without calling io_uring_submit and waiting for CQE. The plan is to try these ideas, discuss and
come up with new ideas on how we can leverage io_uring for ktli backend.&lt;/p></description></item><item><title>PolyPhy Infrastructure Enhancement</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre23/ucsc/polyphy/20230727-prashantjha/</link><pubDate>Thu, 27 Jul 2023 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre23/ucsc/polyphy/20230727-prashantjha/</guid><description>&lt;p>As part of the Polyphy Project, my proposal was aimed at improving various aspects of the project, including CI/CD workflows, encapsulation, and security. Under the mentorship of &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/oskar-elek/">Oskar Elek&lt;/a>, I have made significant progress in the following areas:&lt;/p>
&lt;ol>
&lt;li>
&lt;p>&lt;strong>Fixed GitHub CI Workflows and Release to PyPI:&lt;/strong>
During the first phase, I focused on refining the GitHub CI workflows by implementing new flows that facilitate seamless releases to PyPI. This ensures that the project can be easily distributed and installed by users, making it more accessible and user-friendly.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Encapsulation from Jupyter into Module:&lt;/strong>
I successfully encapsulated the code from Jupyter notebooks into a module. This step is crucial as it prepares the codebase to be released as a standalone module, making it easier for developers to use and integrate into their own projects.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>SonarCloud Integration for Better Code Analysis:&lt;/strong>
To ensure the codebase&amp;rsquo;s quality, I set up SonarCloud to perform comprehensive code analysis. This helps in identifying potential issues, bugs, and areas of improvement, leading to a more robust and reliable project.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Migration to Docker from Tox:&lt;/strong>
In order to improve the containerization process, I replaced the existing solution, Tox, with Docker. Docker provides better container management and ensures a consistent development and deployment environment across different platforms.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Research on Community Platforms for Self-Hosting:&lt;/strong>
I conducted extensive research on various community platforms suitable for self-hosting. This will enable the project to establish a thriving community and foster active collaboration among users and contributors.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Enhanced Security Measures:&lt;/strong>
I implemented several security improvements to safeguard the project and its users. These include setting up a comprehensive security policy, implementing secret scanning to prevent unintentional exposure of sensitive information, code scanning to identify potential vulnerabilities, private vulnerability reporting to handle security issues responsibly, and Dependabot integration for monitoring and managing dependencies.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Upgraded Taichi to Utilize Class-Based Features:&lt;/strong>
As part of the project&amp;rsquo;s development, I successfully upgraded Taichi to utilize class-based features available, thereby enhancing the codebase&amp;rsquo;s organization and maintainability.&lt;/p>
&lt;/li>
&lt;/ol>
&lt;p>Moving forward, I plan to continue working diligently to achieve the goals outlined in my proposal. The improvements made during the first half of the GSoC program have laid a strong foundation for the project&amp;rsquo;s growth and success.&lt;/p>
&lt;p>Stay tuned for further updates and exciting developments as the project progresses!&lt;/p></description></item><item><title>Proactive Data Containers</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre23/lbl/pdc/20230620-nijwang/</link><pubDate>Tue, 20 Jun 2023 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre23/lbl/pdc/20230620-nijwang/</guid><description>&lt;p>As part of the &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre23/lbl/pdc">Proactive Data Containers (PDC)&lt;/a> my &lt;a href="https://docs.google.com/document/d/1Pnt-iq9pWD70d_jmSsoJjnbXtIjJGY3IbXFrwyFT4Q4/edit?usp=sharing" target="_blank" rel="noopener">proposal&lt;/a> under the mentorship of &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/houjun-tang/">Houjun Tang&lt;/a> aims to novel data abstraction for managing science data in an object-oriented manner. PDC&amp;rsquo;s will provide efficient strategies for moving data in deep storage hierarchies and techniques for transforming and reorganizing data based on application requirements. The functionality of the container object themselves are already well developed, so my goal will be to verify the functionality tests regarding the Python API to ensure that it can be used with ease, as well as create command line tools so that it is a complete data object that can be used across platforms and is simple and helpful for the users.&lt;/p></description></item><item><title>Interactive Exploration of High-dimensional Datasets with PolyPhy and Polyglot</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre23/ucsc/polyphy/20230616-kirandeol/</link><pubDate>Fri, 16 Jun 2023 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre23/ucsc/polyphy/20230616-kirandeol/</guid><description>&lt;p>Hello! My name is Kiran and this summer I&amp;rsquo;ll be working with &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre23/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> under the mentorship of &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/oskar-elek/">Oskar Elek&lt;/a>.
The full &lt;a href="https://drive.google.com/file/d/1iwKU938uzUHn0oY2tM0jPADOYoF0kqbh/view?usp=sharing" target="_blank" rel="noopener">proposal&lt;/a> is available online.&lt;/p>
&lt;p>For a brief overview, the Polyglot app allows users to interact with a 3D network of high-dimensional language embeddings, specfically the
&lt;a href="http://vectors.nlpl.eu/repository/" target="_blank" rel="noopener">Gensim Continuous Skipgram result of Wikipedia Dump of February 2017 (296630 words)&lt;/a> dataset. The high-dimensional
embeddings are reduced to 3 dimensions using UMAP. The novel &lt;a href="https://iopscience.iop.org/article/10.3847/2041-8213/ab700c/pdf" target="_blank" rel="noopener">MCPM slime mode metric&lt;/a> is then used
to compute the similarty levels between points (much like how you might compute the Euclidean distance between two points). These similarity levels are used
to filter the network and enable users to find interesting patterns in their data they might not find using quantitative methods alone. For example, the network has
a distinct branch in which only years are nearby! Users might find other clusters, such as ones with sports words or even software engineering words.
Although such exploration may not lead to quantitatively significant conclusions, the ability to explore and test mini hypotheses about the data can lead to
important insights that go on to incite quantitatively significant conclusions.&lt;/p>
&lt;p>In our project, we aim to expand Polyglot such that any user can upload their own data, once they have computed the MCPM metric using PolyPhy. This will have
important applications in building trust in our data and embeddings. This could also help with research on the MCPM metric, which presents a new, more naturalistic
way of computing similarity by relying on the principle of least effort. Overall, there is an exciting summer ahead and if you&amp;rsquo;re interested in keeping up please
feel free to check out the Polyglot app on Github!&lt;/p></description></item><item><title>Enhancing and Validating LiveHD's Power Modeling Flow</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre23/ucsc/livehd/20230529-shahzaibk23/</link><pubDate>Mon, 29 May 2023 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre23/ucsc/livehd/20230529-shahzaibk23/</guid><description>&lt;p>As part of the &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre23/ucsc/livehd">Enhancing and Validating LiveHD&amp;rsquo;s Power Modeling Flow&lt;/a> my &lt;a href="https://docs.google.com/document/d/1_GtzWf_gCKkreN1-6VSAI4h2BqwKEUDGkNNB1OM554I/edit?usp=sharing" target="_blank" rel="noopener">proposal&lt;/a> under the mentorship of Jose Renau and &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/sakshi-garg/">Sakshi Garg&lt;/a> aims to enhance and validate LiveHD&amp;rsquo;s power modeling flow, a critical feature for estimating power consumption in modern hardware designs. The existing flow requires further refinement to ensure its stability, accuracy, compatibility with a wider range of netlists and VCD files, and overall performance. To address these challenges, the project will focus on methodically debugging the current implementation, establishing a comprehensive validation methodology for verifying the accuracy of power estimates, and optimizing the flow to handle larger netlists and VCD files efficiently. Additionally, the project aims to improve existing documentation by providing detailed explanations, examples, and tutorials to facilitate user adoption and understanding. Upon successful completion, the project will deliver a more reliable, accurate, and efficient power modeling flow within LiveHD, contributing to the development of energy-efficient hardware designs. This refined flow will not only enhance the capabilities of LiveHD but also encourage wider adoption and utilization by the hardware design community, fostering innovation in the field of energy-efficient devices and systems.&lt;/p></description></item><item><title>High Fidelity UAV Simulation Using Unreal Engine with specular reflections</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre23/ucsc/osavc/20230601-damodardatta/</link><pubDate>Mon, 29 May 2023 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre23/ucsc/osavc/20230601-damodardatta/</guid><description>&lt;p>As part of the &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre23/ucsc/osavc">Open Source Autonomous Vehicle Controller&lt;/a> my &lt;a href="https://drive.google.com/file/d/18g-WRZj_7ufIt6YZNn4OG1s7VKi1u5hV/view?usp=sharing" target="_blank" rel="noopener">proposal&lt;/a> under the mentorship of &lt;strong>Aaron Hunter and Carlos Espinosa&lt;/strong> aims to Develop a unreal engine based simulator for testing. The simulator will be using unreal engine for the physics and visualization.&lt;/p>
&lt;p>The existing framework uses gazebo simulator with ROS which limit the developement to only Python and C++ programing languages. I intend to develope this simulator with intention connecting it with Python and C++, additionaly expanding support to Matlab so that in future the control algorithm design and validation process becomes easier. To smoothen future developement, i intent to add detailed documentation consisting of the developement period weekly report, examples and tutorial. Upon succesful completion, the project will deliver a powerful simulator with realistic simulation using unreal engine and additional support other programming languages like matlab.&lt;/p>
&lt;p>For more information about the Open Source Autonomous Vehicle Controller and the UC OSPO organization, you can visit the &lt;a href="https://github.com/uccross/open-source-autonomous-vehicle-controller" target="_blank" rel="noopener">OSAVC project repository&lt;/a> and the &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/">UC OSPO website.&lt;/a>&lt;/p></description></item><item><title>OpenRAM Layout verses Schematic (LVS) visualization</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre23/ucsc/openram/20230529-mahnoor-ismail01/</link><pubDate>Mon, 29 May 2023 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre23/ucsc/openram/20230529-mahnoor-ismail01/</guid><description>&lt;p>As part of the &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre23/ucsc/openram">OpenRAM Layout verses Schematic (LVS) visualization&lt;/a> my &lt;a href="https://docs.google.com/document/d/1QEBOglVgy20s0v1_vfpFHw8CdIYUbex12TOjSlAe1-E/edit?usp=sharing" target="_blank" rel="noopener">proposal&lt;/a> under the mentorship of &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/jesse-cirimelli-low/">Jesse Cirimelli-Low&lt;/a> and &lt;a href="mailto:mrg@ucsc.edu">Matthew Guthaus&lt;/a> aims to develop a comprehensive Python-based graphical user interface (GUI) with a robust backend system to effectively analyze, visualize, and debug layout versus schematic (LVS) mismatches in the OpenRAM framework. The proposed solution focuses on efficiently processing LVS report files in JSON format, identifying mismatched nets in the layout, and visually representing extra nets in the schematic graph using advanced backend algorithms. By implementing a powerful backend system, the GUI will streamline the debugging process and improve overall productivity, while maintaining high performance and reliability. The deliverables for this project include a fully-functional GUI with a performant backend, features for visualizing and navigating through LVS mismatches, comprehensive documentation, and user guides.&lt;/p></description></item><item><title>Efficient Communication with Key/Value Storage Devices</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre23/ucsc/kvstore/20230526-manank/</link><pubDate>Fri, 26 May 2023 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre23/ucsc/kvstore/20230526-manank/</guid><description>&lt;p>Hi everyone!&lt;/p>
&lt;p>I&amp;rsquo;m Manank Patel, and am currently an undergraduate student at Birla Institute of Technology and Sciences - Pilani, KK Birla Goa Campus. As part of the &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre23/ucsc/kvstore">Efficient Communication with Key/Value Storage Devices&lt;/a> my &lt;a href="https://drive.google.com/file/d/1iJIlHuCpnvDeOyr5DphDDimqdl9s4hKH/view?usp=sharing" target="_blank" rel="noopener">proposal&lt;/a> under the mentorship of &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/aldrin-montana/">Aldrin Montana&lt;/a> and &lt;strong>Philip Kufeldt&lt;/strong> aims to implement io_uring based communication backend for network based key-value store.&lt;/p>
&lt;p>io_uring offers a new kernel interface that can improve performance and avoid the overhead of system calls and zero copy network transmission capabilities. The KV store clients utilize traditional network sockets and POSIX APIs for their communication with the KV store. A notable advancement that has emerged in the past two years is the introduction of a new kernel interface known as io_uring, which can be utilized instead of the POSIX API. This fresh interface employs shared memory queues to facilitate communication between the kernel and user, enabling data transfer without the need for system calls and promoting zero copy transfer of data. By circumventing the overhead associated with system calls, this approach has the potential to enhance performance significantly.&lt;/p></description></item><item><title>Advancing Reproducible Science through Open Source Laboratory Protocols as Software</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre23/ucsd/labop/20230621-luhesketh/</link><pubDate>Thu, 25 May 2023 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre23/ucsd/labop/20230621-luhesketh/</guid><description>&lt;p>Hello everyone!&lt;/p>
&lt;p>My name is Luiza, I am an eighth-semester Bsc Biological Sciences student from São Paulo, Brazil. As part of the &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre23/ucsd/labop">LabOp&lt;/a> working group, my &lt;a href="https://docs.google.com/document/d/1pJ7UIATZYASXjbLdUosvq08QkhPNTFxZFId9dapNp-o/edit?usp=sharing" target="_blank" rel="noopener">proposal&lt;/a> under the mentorship of &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/dan-bryce/">Dan Bryce&lt;/a> and &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/tim-fallon/">Tim Fallon&lt;/a> aims to build a conversor that takes normal laboratory protocols and translates them into machine executable protocols. This is possible thanks to LabOP&amp;rsquo;s versatility to represent what a Laboratory protocol should look like. I´ll be testing this specialization in Hamilton machines that are great for experimenting scalling up.&lt;/p>
&lt;p>Nowadays we face a very common issue between Biotechnology laboratories, that is that protocols are difficult to share and to adapt for machine execution. Laboratory protocols are critical to biological research and development, yet complicated to communicate and reproduce across projects, investigators, and organizations. While many attempts have been made to address this challenge, there is currently no available protocol representation that is unambiguous enough for precise interpretation and automation, yet simultaneously abstract enough to enable reuse and adaptation.&lt;/p>
&lt;p>With LabOP we can take a protocol and convert it in multiple ways depending on the needs of the researcher for automation or human experimentation and allowing flexibility for execution and experimentation so I`ll be building a specialization that translates protocols in a way that they can be executed by Hamilton machines.&lt;/p></description></item><item><title>PolyPhy Infrastructure Enhancement</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre23/ucsc/polyphy/20230525-prashantjha/</link><pubDate>Thu, 25 May 2023 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre23/ucsc/polyphy/20230525-prashantjha/</guid><description>&lt;p>Hey!&lt;/p>
&lt;p>I&amp;rsquo;m Prashant Jha, from Pune, a recent undergraduate student from BITS Pilani. As part of the &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre23/ucsc/polyphy">Polyphy&lt;/a> my &lt;a href="https://drive.google.com/file/d/1y2X1_6_HliYowZn-qHd7x_Hz6QC3-KSe/view" target="_blank" rel="noopener">proposal&lt;/a> under the mentorship of &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/oskar-elek/">Oskar Elek&lt;/a> aims to develop and improve the current infrastructure.&lt;/p>
&lt;p>Polyphorm / PolyPhy - which is led by
Oskar Elek. PolyPhy is an organization that focuses on developing a GPU oriented
agent-based system for reconstructing and visualizing optimal transport networks
defined over sparse data. With its roots in astronomy and inspiration drawn from nature,
PolyPhy has been instrumental in discovering network-like patterns in natural language
data and reconstructing the Cosmic web structure using its early prototype called
Polyphorm. The organization aims to provide a richer 2D / 3D scalar field representation
of the reconstructed network, making it a toolkit for a range of specialists across
different disciplines, including astronomers, neuroscientists, data scientists, and artists.
PolyPhy&amp;rsquo;s ultimate purpose is to create quantitatively comparable structural analytics
and discover connections between different disciplines. To achieve its goals, PolyPhy
requires a robust infrastructure that is engineered using DevOps, Code Refactoring, and
Continuous Integration/Continuous Deployment (CI/CD) practices.
You can see an instructive overview of PolyPhy in our workshop and more details about our research &lt;a href="https://polyphy.io/" target="_blank" rel="noopener">here&lt;/a>.&lt;/p></description></item><item><title>Strengthening Underserved Segments of the Open Source Pipeline</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre23/ucsc/sus/20230524-nandinisaagar/</link><pubDate>Thu, 25 May 2023 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre23/ucsc/sus/20230524-nandinisaagar/</guid><description>&lt;p>Namaste everyone🙏🏻!&lt;/p>
&lt;p>I&amp;rsquo;m Nandini Saagar, from Mumbai. An undergraduate student at the Indian Institute of Technology, Banaras Hindu University, IIT (BHU), Varanasi. As part of the &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre23/ucsc/sus">Strengthening Underserved Segments of the Open Source Pipeline&lt;/a> my &lt;a href="https://docs.google.com/document/d/1snzaUfBvptLcWP7I8IyKYFuBNfVGxNe9mnYkFXhb5ZM/edit?usp=sharing" target="_blank" rel="noopener">proposal&lt;/a> under the mentorship of &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/emily-lovell/">Emily Lovell&lt;/a> aims to strengthen the underserved segment of the open source pipeline.&lt;/p>
&lt;p>My interest in Open Source was first piqued as a freshman when I was introduced to Open Source as a place where people from all communities and backgrounds come together to create software that can have real-world impact, that too in a completely autonomous and self-governed manner! I am so glad that I could transition from just a person who imagined Open Source to be a fair-eyed dream to being a part of multiple such communities. This journey has been life-defining for me, and that’s why I want to help deliver the message of Open Source to all teenagers!&lt;/p>
&lt;p>This project seeks to invite and support broader, more diverse participation in open source by supporting early contributors, especially those who have been historically minoritized within tech. It will aim to create content that anyone with some Open Source experience can use to help and guide new students to the journey of OpenSource, GitHub, and all the relevant technologies, provide a medium and platform for all contributors to share their various OpenSource experiences and testimonials, conduct an Open Source Themed Hackathon/Scavenger Hunt, and leverage the power of social media engagement to get young and brilliant minds acquainted with the technical and open-source world at an early age.&lt;/p>
&lt;p>Stay tuned to explore the enormous world of Open Source with me!&lt;/p></description></item></channel></rss>