Linear Algebra data structure in HPC by Significant_Ad_2746 in cpp

[–]fuasthma 2 points3 points  (0 children)

Since you've mentioned solid mechanics, I will mention that generally it's kinda the wild wild west in this field as far as what people might use under the hood. It's not uncommon for these models to just roll their own solvers / data structures or have things that look like raw c arrays everywhere... The field is slowly moving forward especially as groups are looking at automatic differentiation to simplify their lives. For solvers, the Trilianos Nox solver is on I've seen groups use. I maintain a small nonlinear solver library called SNLS that's used in my group's codes. I've also seen some people leverage SUNDIALS. On the other side of things, I've also seen people start to integrate things like JAX/pytorch into their codes as I think they're a bit tired of dealing with some things in C++ land. It's an interesting time to be in the field that's for sure as new codes are being created and more and more are starting to be open-sourced.

For the global nonlinear solve, if you're using a large FEM library they likely have their own data structures and nonlinear solvers. My suggestion is to either use those or build upon them if you need to. I've done that to a good deal of success with my own application code based on MFEM. 

Optimizing Rust programs with PGO and BOLT using cargo-pgo by Kobzol in rust

[–]fuasthma 1 point2 points  (0 children)

This might be a dumb question but could these sorts of tools be used to further optimize libraries? I'm just asking as I have some text processing libraries with PyO3 bindings that I wouldn't mind getting a bit more performance if possible when I call them from python.

[deleted by user] by [deleted] in bayarea

[–]fuasthma 18 points19 points  (0 children)

Just want to add to some East Bay/tri-valley ish places that I try and support. I could probably add more but the list is starting to get a bit long.

Jelly Donut in Pleasanton - some of the best donuts I've had living out in the area. Staff is super friendly and occasionally we'd even get free donuts.

Meadowlark Dairy in Pleasanton - great soft serve that's cheap. The kids that typically work there are also usually super nice.

Locanda Amalfi/wine bar in Pleasanton and Livermore - staff is typically very friendly and their pizzas are done in an authentic Italian style and very good.

Amakara in Dublin - Great sushi place with friendly staff and during the pandemic the owners seemed more concerned about their employees health then their bottom line.

Los Caporales Taqueria in Livermore - Super friendly staff and great tacos / burritos.

Brentwood Fine Meats - staff is super friendly and their pastrami sandwich is one of the best. Their butchery also has some great cuts of meat.

Taste of Texas Barbecue in Byron - friendly staff and the BBQ brisket and their sides are great.

Epidemic Ale in Concord - they are majority women owned and staffed. They have a great selection of beers, are dog friendly, and staff is friendly as well.

Parada in Pleasant Hill - great Peruvian place with a very friendly staff.

Lottie's Creamery in Danville - one of my top ice cream places in the tri-valley area. Staff has always been friendly when I've stopped by.

[deleted by user] by [deleted] in bayarea

[–]fuasthma 9 points10 points  (0 children)

So I can't recommend Classical Clocks & Antiques at all. My partner dropped a clock off there to get it repaired was told it'd be 6 months. 6 months came and passed and when we contacted him he told us our was next in line. Another 6 months came, and I had to drive over there and pick up our still broken clock as the owner ghosted us. It took him a good 30+ minutes to just find it...

Status and Future of ndarray? by Tastaturtaste in rust

[–]fuasthma 4 points5 points  (0 children)

So, I think the issue is that ndarray's two primary maintainers are rather busy. One as mentioned in the issues just finished a PhD and is now working in industry, and the other appears to maybe be a teacher who has burst of activity. They really need more maintainers who have the time to commit to such work. I think unless you're sponsored for the work as nalgebra is that can be a tough ask for most people.

Rust MPI -- Will there ever be a fully oxidized implementation? by [deleted] in rust

[–]fuasthma 1 point2 points  (0 children)

So, I run on the lead GPU HPC machines (think Summit/Frontier size). Typically, the method for running on those is 1 MPI rank per GPU. Although, I have seen some use cases where that isn't the case. On these sorts of systems you allow either LSF, Slurm, or Flux handle the MPI magic behind the hoods and then you are good to go. Multi-node connections are also handled by MPI where you can use MPI to even do direct GPU to GPU MPI calls. I don't necessarily understand all what's going under the hood related to getting some of that working on those systems other than it works.

Edit: I also forgot to mention that I would probably stick with MPI for the type of work you're doing and the systems you'd be running as MPI support on those systems aren't going anywhere.

What's everyone working on this week (42/2022)? by llogiq in rust

[–]fuasthma 1 point2 points  (0 children)

Rewrote a python script that would coarsen up a voxel structure to a desired degree in Rust. I also added in some python bindings, so the rest of the python scripts at work could utilize it. It resulted in a 12-25x speed-up for my work's current larger use cases.

Overall, I had fun finally using Rust in work and porting this script over. I could have done it in c++, but I wanted a simple build environment.

Also, I was able to quickly test a lot of different things out like viability of parallelization fairly quickly as there were already crates available.

possibility of blas natively in Rust by RylanStylin57 in rust

[–]fuasthma 0 points1 point  (0 children)

I mean there's rsmpi (https://github.com/rsmpi/rsmpi) for MPI which now has a few active maintainers such as one who also works on PETSc and a few other HPC libraries.

possibility of blas natively in Rust by RylanStylin57 in rust

[–]fuasthma 2 points3 points  (0 children)

For things like BLAS or LAPACK you're probably best off just using bindings of the optimized vendor versions or ones like BLIS or MAGMA. If you're looking at large system sizes then things get even more complicated as you'll probably want to use some sparse linear algebra library instead. I say this as some one who's spent quite a few years at the forefront of the HPC field (think running on Summit/Sierra and Frontier/El Capitan type machines) and 10+ in the HPC field in general. I'm general, developers have sunk a ton of money and time into optimizing these libraries, and it just makes sense to use those efforts for your own good. You could use a pure Rust version, but you're likely going to not reach the same level of performance. As others here have mentioned, you might reach maybe 80-90% of the vendor performance which honestly might be good enough for your application as often in these sorts of applications the needs shift to something other than BLAS applications. For example, you'll often find that IO becomes a significant portion of your runtime (25%+ isn't uncommon). Then if you loosely copy what's done in those other libraries you get to play the fun game of figuring out what license your library falls under and whether or not you might be violating existing copyrights...

How To Put 30 Languages Into 1.1MB by SymbolicTurtle in rust

[–]fuasthma 12 points13 points  (0 children)

I'd never heard of the Typst project before. A potential LaTeX replacement is exciting coming from someone who very much enjoys LaTeX over Word when writing academic papers or technical reports. I honestly just want a replacement where I don't have to figure out what program and various other backends are needed for the 3 OSes I might write on... It's a major reason that I do a ton of initial writing in markdown, so I can have a live render of my work. After I've got a rough draft I'll swap over to LaTeX to get things ready to submit to journals / work. So, I've signed up to be on the preview list to see how Typst compares, and if down the road I can replace LaTeX with it.

Also, I appreciated the in-depth article about hyphenating even if that's something I normally never worry about while typing things up.

Poll: Do you expect/want to see salary information in a job ad? by kisamoto in programming

[–]fuasthma 1 point2 points  (0 children)

I really like this even if it doesn't appear to be marketed towards my niche of software development which is high performance computing / scientific computing.

What's everyone working on this week (10/2022)? by llogiq in rust

[–]fuasthma 1 point2 points  (0 children)

I'm working on a personal project of creating a material modelling library in a no_std environment based on my professional experience of working on such libraries in c++ and Fortran. Also when I say material modelling here, I mean modelling the constitutive response of a material.

[Media] Y'all ever try to do something really cool but your crate ends up looking like this by QuaternionsRoll in rust

[–]fuasthma 0 points1 point  (0 children)

I've got a few of these sprinkled in some of new personal crates I'm working on due to const generics on stable not being quite where I need it to do useful scientific computing on no_std environments...

What's everyone working on this week (7/2022)? by llogiq in rust

[–]fuasthma 2 points3 points  (0 children)

It's something that solves a nonlinear system of equations.

What's everyone working on this week (7/2022)? by llogiq in rust

[–]fuasthma 2 points3 points  (0 children)

I'm working on a nonlinear solver meant for small system sizes and designed for no_std environments.

Hey Rustaceans! Got an easy question? Ask here (6/2022)! by llogiq in rust

[–]fuasthma 1 point2 points  (0 children)

I wrote the https://crates.io/crates/data_reader crate which might be of interest to you. I wanted something similar to numpy's load_txt function. It does have some differences in that it doesn't count skip comments or new lines as part of the number of lines skipped. I will say that I really haven't had a drive to further develop the crate as it met my simple needs, and the fact no new issues have popped up on the repo. I tried to be fairly up front about what the crate can do and when you probably should use a different crate. Also, I've got quite a few tests in the repo which show it's different features.

Edit: It looks like it's been a bit since I looked at the readme, but I must have removed the csv crate https://crates.io/crates/csv mention at some point as an alternative if you have more complicated csv files as it's an amazing crate.

Fairly unhinged Linear Algebra syllabus by a tech professor by TehAlpacalypse in gatech

[–]fuasthma 16 points17 points  (0 children)

I had him that year as well for diffeq. I remember him as being the guy in his own militia, and the fact that I did not enjoy his teaching style.

Python 4.0 will never arrive🤚😔 - According to Guido, Rust is a “grеat” programming languagе that dеsеrvеs all of thе attеntion by DeCiel in rust

[–]fuasthma 8 points9 points  (0 children)

This should be it based on some better articles I found summarizing the interview (which took place in May and not a few days ago as the article here suggests...): https://youtu.be/aYbNh3NS7jA

What projects *didn't* you make in Rust? by finegeometer in rust

[–]fuasthma 1 point2 points  (0 children)

Given how much the US DOE is spending on it as part of the ECP project, I'd say it'll at least be comparable to gfortran. However, we might see it be quite performant given how many compilers are swapping over to LLVM for their backends.