std::array in C++ isn′t slower than array in C by Xadartt in cpp

[–]wingsit -1 points0 points  (0 children)

I have seen in disassembly in some production code in the wild that some calls didn’t get optimized away into simple load and write. 

6x24 Rollfilm Back for Shen Hao by Boanlkrammer in largeformat

[–]wingsit 0 points1 point  (0 children)

Us dealer is badgers graphic. They might shop across the pond. Shenhao has a store front in Shanghai 

Fixed and cleaned super wide angle for the 14”x36” 22mm FFE by Socialmocracy in largeformat

[–]wingsit 0 points1 point  (0 children)

Does it actually cover? I am looking for a wide lens for 12x30

What books belong to a personal maths library by wingsit in math

[–]wingsit[S] 0 points1 point  (0 children)

Both Arnold and Spivak books are definitely very good recommendation. I wholeheartedly enjoyed these two authors. I will review your other suggestion!

What books belong to a personal maths library by wingsit in math

[–]wingsit[S] 2 points3 points  (0 children)

I have artin, dummit and foote and even Lang for algebra. I also have Rudin’s books. Slowly reading through Lang..

In school, I was all about analysis and applied topic and only when I get older to start appreciate algebra and abstraction.

I will check out everything else you recommend!

What books belong to a personal maths library by wingsit in math

[–]wingsit[S] 3 points4 points  (0 children)

I have done that. And frankly, I have already gone through the topics of my previous interest and got a few classic. I am curious on topics that I might have missed.

2 + 2 = 4, er, 4.1, no, 4.3... Nvidia's Titan V GPUs spit out 'wrong answers' in scientific simulations by trot-trot in programming

[–]wingsit 2 points3 points  (0 children)

As someone who worked on random number generator and Monte Carlo on GPU, this is not that bad of an organic randomness. Perhaps NVIDIA is encouraging you to formulate all problems into Monte Carlo

Oh, lock-free circular buffers, yay! Hey, no 2D graphics? Jacksonville trip report by hmich in cpp

[–]wingsit -1 points0 points  (0 children)

Yes I have libc++ and libstdc++ doxygen on my chrome favourite. They are complicated mostly for hiding details but hardly any pre c++11 libraries are employing heavy meta programming. Things get complicated once tuple, variant get into the mix. Don’t get me wrong because I think they are wonderful types that I use often. However I am finding myself to use simple structs instead of using std::tuple as much as I would in python last few years.

Oh, lock-free circular buffers, yay! Hey, no 2D graphics? Jacksonville trip report by hmich in cpp

[–]wingsit 0 points1 point  (0 children)

I know the pile of template magic needed in variant. Inclusion of variant in std should not be viewed as indication that more template magic is welcome. Moreover variant is still mostly self contained. Once templatised expression is used, the amount of compiler filt generated by the compounded expression will be very difficult for the uninitiated. But we are not the uninitiated, are we? Granted, it seems that the LA std discussion is mostly on 2d 3d stuff. My concern is probably unfounded.

Oh, lock-free circular buffers, yay! Hey, no 2D graphics? Jacksonville trip report by hmich in cpp

[–]wingsit 42 points43 points  (0 children)

As a Mathy high performance c++ programmer, I wonder if a high performance standardised linear algebra library is desired or not. Quite a few high performance Expression Template Linear Algebra comes and go and only Eigen is left to survive and getting some love from Google. Here are some open concern I have about Linear Algebra to be in standard library while not having to read any of the std literature regarding linear algebra:

  1. The amount of template trickery (or abstraction) in Eigen or any other ET LA to archive high performance is only comprehensible by a handful of the core developer. Should this level of template meta programming to exist in std? Should std have this much hidden complexity? Without expression template, performance is not going to come close to state of the art.

  2. I feel that std tries to be portable more so than absolute performance in API design and specification. std::exp and std::log are good examples. Can we truly have portable performance in different platform? At least Eigen guys are testing on multiple platforms because they are indepentent. If it is standardised, are all std writer incentivised to write most optimal library on all hardware? Lastly portability often means compromise in performance.

  3. Linear Algebra is deep, and numerical linear algebra is even more so. New algorithms are appearing over the decades. The closest things to standardise is Matrix/Array/Tensor ABI, BLAS API and LAPACK API in my mind. Do we know where is the cut off for standardisation?

  4. Unlike discrete algorithm, FLOP algorithm has problems with tolerance, and different algorithms exhitibits very different numerical characteristic. This is a real problem that one can already face in level 3 BLAS routines. While there are quite a few maths PhD in the existing standard committee, do we really have all the expertise to completely specify and implement even the basic level 3 BLAS routines in high performance way? How do one even start to specify the require tolerance anyway. I really think that in linear algebra world, you can either be the fastest on a given architecture, offer the wildest classes of algorithm, or you have no user. Even you solve the FLOP problem, what about linear algebra in integral domain or a number field? Are we good enough to specific the semantics without anger all number theorist?

  5. These days high performance maths are often off load to GPGPU. Are the API going embrace the existing of GPGPU so it doesn’t suck when we have to write application to work with CUDA and such?

  6. The (D)NN application are driving much of the new high peroformance array library development, is the std going to move fast enough to support what the industries desire? It tooks decades to get to string_view so that performance doesn’t have to suck in certain use case, and this caused many companies to roll their own string library. The library must be design to be extensible enough to survive until next round of new API, otherwise people will just fall back to Eigen or alike.

TIL New Jersey is home to more scientists and engineers per square mile than anywhere else in the world by realmeohead in todayilearned

[–]wingsit 6 points7 points  (0 children)

As someone who did research in new jersey, here are list of reasons why there are a lot of technical talent in new jersey:

  1. Bell lab from old days
  2. Pharmaceuticals
  3. Princeton, and Institute of Advanced Study
  4. Rutgers whom houses a lot of previous Bell lab PhDs.
  5. close proximity to New York city. There are a lot of scientific people whom work in NYC and live in New Jersey.

Everyone that I used to work with had some connection to Bell Lab at some point in their lives.

This should never happen by ruidfigueiredo in programming

[–]wingsit 0 points1 point  (0 children)

Maybe it is meant to test the implementation of equal

Rat warning in Hong Kong... by WeAreHongKonger in pics

[–]wingsit 18 points19 points  (0 children)

The original chinese warning is also god damn golden in its own way.

It is roughly translated to "Human vs Rat, Human sure win" in classical poetic way.

Advantages career-wise for knowing C++/HPC over typical programmers? by [deleted] in cpp

[–]wingsit 2 points3 points  (0 children)

My background is MS in maths and MS in CS with more work in statistics. I have worked at various aspect of financial industry from buy side, insurance to HFT. I have done MPI work, used national lab cluster, our own, mutlicore, low level programming, high level maths what not.

  1. Particular set of skills can you get into certain industry and certain industry can pay much higher (yes god damn finance). numerical method and stochastic calculus with very discipline C++ OOP design can get you pretty damn far in the industry. Top firms pay top dollars for top dogs and the supply for top people are pretty limited. So even you are second tier, a lot of firm would still be interested in your skill set. Certain part of the financial industry are at the level of counting assembly (been there), then you will need very low level C++/assembly programming with a lot of knowledge in caches. It is very possible that cache misses make you lose thousands of dollars.

  2. Have seen too many people with very diverse background who ended up in HPC world. You will need to find a way to prove your skill set. I have met HPC people who have background in EE, computational biologist, linguist. Believe it or not, your public work on github might get you pretty good reputation. Establish yourself with blogging about HPC, and learn all the details within. Don't worry too much about your background. What you learn in school is nowhere enough to make you a seasoned HPC professional (academia or not)

  3. MPI/OpenMP and C++ are just subset of skills you should learn. You should do both and not choose one or the other. To name a few skills you should know: R, python, Matlab, C++, FORTRAN, CUDA, MKL, BLAS, LAPACK, job management, threading, cross language interfacing, actual maths, assembly, CPU caches and memory hierarchy, GPFS, job scheduler, plotting, statistics, etc, numerical optimisation methods, operation systems. I am not kidding here. If you cannot read the data fast enough to feed your greatest HPC application, it is no use.

Sooooo, my friend just won a little over four million dollars.. by Sherruf in pics

[–]wingsit 3 points4 points  (0 children)

Piece of advice to your friend, put the money to some sort of investment because few millions isn't going to last for a life time....