Computer Science

316 readers
3 users here now

A forum dedicated to discussion of computer science and programming. We welcome posts about software engineering, quant, academia, majoring in CS, and even shitposting.

founded 2 years ago
MODERATORS
1
2
 
 

Results show that hardware, software, and numerical variability lead to perturbations of similar magnitudes — albeit uncorrelated — suggesting that these three types of variability act as independent sources of numerical noise with similar magnitude.

We define “hardware variability" as the output differences caused by using CPU micro-architectures with or without AVX2 support, “software variability" the variability resulting from different compilation environments in Docker and Guix, mostly influenced by the FSL, gcc, libm, and OpenBlas versions, and “numerical variability" the variability resulting from random rounding.

AVX2 (Advanced Vector Extensions 2) is a CPU extension related to x86/AMD floating point & integer vector processing.

I only skimmed the article, and I’m not sure what to make of the “random rounding” variability.

Random rounding is a type of Monte Carlo Arithmetic, a stochastic arithmetic technique to empirically evaluate numerical stability by injecting noise into floating point operations and quantifying the resulting error at a given virtual precision. While Monte-Carlo Arithmetic provides different noise injection modes, we only used random rounding (RR).

Perhaps they’re saying that the precision of floating point computations varies slightly depending on the numbers themselves?

This was an interesting bit about Guix and Docker.

Docker and Guix, the two packaging solutions used in our experiments are known to mitigate software variability. From a computational bit-wise reproducibility point of view, experiments conducted in this study show that the two packaging solutions lead to similar conclusions: results are bit-wise reproducible when using the same packaged FLIRT executable on equivalent micro-architectures. We note however that, despite using the same version of the FLIRT source code, the two solutions yielded different outputs for most of the input files (but not for all). This is due to the software variability resulting from different compilation environments, mostly influenced by the gcc, libm and OpenBlas versions. The Docker image is a black box providing little or no information on how the executable was built (both on the compilation process, and on software dependency stack). In contrast, the Guix solution enforces full transparency on both compiling and runtime environments, requesting for the description and availability of all dependencies. The Guix package is thus more complex to produce than a Docker image, but, once available, variations can be easily built by modifying compiler options or by using other versions of dependent packages.

3
 
 

cross-posted from: https://lemmy.sdf.org/post/37414239

I've read the old papers proving that fact, but honestly it seems like some of the terminology and notation has changed since the 70's, and I roundly can't make heads or tails of it. The other sources I can find are in textbooks that I don't own.

Ideally, what I'm hoping for is a segment of pseudocode or some modern language that generates an n-character string from some kind of seed, which then cannot be recognised in linear time.

It's of interest to me just because, coming from other areas of math where inverting a bijective function is routine, it's highly unintuitive that you provably can't sometimes in complexity theory.

4
 
 

Hey Computer Scientists!

I'm currently interested about the intersection of computer science and biology, specifically in the realms of environmental biology, zoology, and entomology. I have a background in these areas, fyi.

I'm reaching out to you to see if anyone can recommend some great courses (possibly beginner friendly) that delve into the application of computer science in these fields. Whether it's data analysis, modeling, or bioinformatics, I would like to learn how and what computational tools can be utilized in these fields of biology.

If you've taken a course that covers these topics, or if you've heard of reputable institutions or online platforms offering such courses, please share your insights! I think that personal experiences and recommendations hold so much value.

Also, if you have any advice on some great books about computer science and biology (that maybe helped you to learn to work in this field), I'd love to hear about it.

Looking forward to your suggestions!

5
 
 

Welcome! As it says on the sidebar, this server is dedicated to the discussion of computer science as a whole. As Lemmy grows it may be wise to fragment the server into specialized communities (as Reddit has done; see r/csMajors vs r/programming vs r/ProgrammerHumor), but for now, please feel free to post anything remotely related to CS.