Hail VS vast

Compare Hail vs vast and see what are their differences.

vast

VAST is an experimental compiler pipeline designed for program analysis of C and C++. It provides a tower of IRs as MLIR dialects to choose the best fit representations for a program analysis or further program abstraction. (by trailofbits)
Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
Hail vast
5 2
934 334
1.4% 3.3%
9.8 9.9
6 days ago 4 days ago
Python C++
MIT License Apache License 2.0
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

Hail

Posts with mentions or reviews of Hail. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-01-09.
  • We're wasting money by only supporting gzip for raw DNA files
    6 projects | news.ycombinator.com | 9 Jan 2023
  • Software engineers: consider working on genomics
    6 projects | news.ycombinator.com | 19 Nov 2022
    I don't have any funding to hire right now, but I'm always happy to chat about the industry and my experience building Hail (https://hail.is, https://github.com/hail-is/hail), a tool widely used by folks with large collections of human sequences.

    The other posters are not wrong about compensation. Total compensation is off by a factor of two to three.

    However, it is absolutely possible to work with a group of top-notch engineers on serious distributed systems & compilers in service of an excellent scientific-user experience. I know because I do. We are lucky to have a PI who respects and hires and diversity of expertise within his lab.

    I enjoy being deeply embedded with our users. I do not have to guess what they need or want because I help them do it every day.

    I also enjoy enmeshing engineering with statistics, mathematics, and biology. Work is more interesting when so many disciplines conspire towards the end of improved human health.

  • AWS doesn't make sense for scientific computing
    1 project | news.ycombinator.com | 7 Oct 2022
    I think this post is identifying scientific computing with simulation studies and legacy workflows, to a fault. Scientific computing includes those things, but it also includes interactive analysis of very large datasets as well as workflows designed around cloud computing.

    Interactive analysis of large datasets (e.g. genome & exome sequencing studies with 100s of 1000s of samples) is well suited to low-latency, server-less, & horizontally scalable systems (like Dremel/BigQuery, or Hail [1], which we build and is inspired by Dremel, among other systems). The load profile is unpredictable because after a scientist runs an analysis they need an unpredictable amount of time to think about their next step.

    As for productionized workflows, if we redesign the tools used within these workflows to directly read and write data to cloud storage as well as to tolerate VM-preemption, then we can exploit the ~1/5 cost of preemptible/spot instances.

    One last point: for the subset of scientific computing I highlighted above, speed is key. I want the scientist to stay in a flow state, receiving feedback from their experiments as fast as possible, ideally within 300 ms. The only way to achieve that on huge datasets is through rapid and substantial scale-out followed by equally rapid and substantial scale-in (to control cost).

    [1] https://hail.is

  • Ask HN: Who is hiring? (July 2021)
    33 projects | news.ycombinator.com | 1 Jul 2021
    Broad Institute of MIT and Harvard | Cambridge, MA | Associate Software Engineer | Onsite

    We are seeking an associate software engineer interested in contributing to an open-source data visualization library for analyzing the biological impact human genetic variation. You will contribute to projects like gnomAD (https://gnomad.broadinstitute.org), the world's largest catalogue of human genetic variation used by hundreds of thousands of researchers and help us scale towards millions of genomes in the coming years. We are also developing next-generation tools for enabling genetic analyses of large biobanks across richly phenotyped individuals (https://genebass.org). In this role you will gain experience developing data-intensive web applications with Typescript, React, Python, Terraform, Google Cloud Platform, and will make use of the scalable data analysis library Hail (https://hail.is). Key to our success is growing a strong team with a diverse membership who foster a culture of continual learning, and who support the growth and success of one another. Towards this end, we are committed to seeking applications from women and from underrepresented groups. We know that many excellent candidates choose not to apply despite their capabilities; please allow us to enthusiastically counter this tendency.

    Please provide a CV and links previous work or projects, ideally with contributions visible on Github.

    email: [email protected]

vast

Posts with mentions or reviews of vast. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-08-23.
  • Print(“lol”) doubled the speed of my Go function
    2 projects | news.ycombinator.com | 23 Aug 2023
    Most languages target C or LLVM, and C and LLVM have a fundamentally lossy compilation processes.

    To get around this, you'd need a hodge podge of pre compiler directives, or take a completely different approach.

    I found a cool project that uses a "Tower of IRs" that can restablish source to binary provenance, which, seems to me, to be on the right track:

    https://github.com/trailofbits/vast

    I'd definitely like to see the compilation processes be more transparent and easy to work with.

  • Compilers and IRS: LLVM IR, SPIR-V, and MLIR
    2 projects | news.ycombinator.com | 29 Oct 2022
    At Trail of Bits, we are creating a new compiler front/middle end for Clang called VAST [1]. It consumes Clang ASTs and creates a high-level, information-rich MLIR dialect. Then, we progressively lower it through various other dialects, eventually down to the LLVM dialect in MLIR, which can be translated directly to MLIR.

    Our goals with this pipeline are to enable static analyses that can choose the right abstraction level(s) for their goals, and using provenance, cross abstraction levels to relate results back to source code.

    Neither Clang ASTs nor LLVM IR alone meet our needs for static analysis. Clang ASTs are too verbose and lack explicit representations for implicit behaviours in C++. LLVM IR isn't really "one IR," it's a two IRs (LLVM proper, and metadata), where LLVM proper is an unspecified family of dialects (-O0, -O1, -O2, -O3, then all the arch-specific stuff). LLVM IR also isn't easy to relate to source, even in the presence of maximal debug information. The Clang codegen process does ABI-specific lowering takes high-level types/values and transforms them to be more amenable to storing in target-cpu locations (e.g. registers). This actively works against relating information across levels; something that we want to solve with intermediate MLIR dialects.

    Beyond our static analysis goals, I think an MLIR-based setup will be a key enabler of library-aware compiler optimizations. Right now, library-aware optimizations are challenging because Clang ASTs are hard to mutate, and by the time things are in LLVM IR, the abstraction boundaries provided by libraries are broken down by optimizations (e.g. inlining, specialization, folding), forcing optimization passes to reckon with the mechanics of how libraries are implemented.

    We're very excited about MLIR, and we're pushing full steam ahead with VAST. MLIR is a technology that we can use to fix a lot of issues in Clang/LLVM that hinder really good static analysis.

    [1] https://github.com/trailofbits/vast

What are some alternatives?

When comparing Hail and vast you can also consider the following projects:

GridScale - Scala library for accessing various file, batch systems, job schedulers and grid middlewares.

clangir - A new (MLIR based) high-level IR for clang.

Vegas - The missing MatPlotLib for Scala + Spark

psychec - A compiler frontend for the C programming language

metorikku - A simplified, lightweight ETL Framework based on Apache Spark

GrayC - GrayC: Greybox Fuzzing of Compilers and Analysers for C

Jupyter Scala - A Scala kernel for Jupyter

thorin2 - The Higher ORder INtermediate representation - next gen

Scoozie - Scala DSL on top of Oozie XML

dfir-orc - Forensics artefact collection tool for systems running Microsoft Windows

Summingbird - Streaming MapReduce with Scalding and Storm

FFMpeg-Online - This repository catalogs a list of FFMpeg commands for different situations. By https://hotpot.ai.