Lefteris Stamatogiannakis

@estama2

Database and big data researcher (University of Athens). Physics, programmer (Rigs of Rods, BeamNG). BeamNG CTO

Vrijeme pridruživanja: travanj 2019.

Tweetovi

Blokirali ste korisnika/cu @estama2

Jeste li sigurni da želite vidjeti te tweetove? Time nećete deblokirati korisnika/cu @estama2

  1. 2. velj

    BTW, most of the "reduce" functionality that programming frameworks support, assumes a single group (sum ALL elements in this array) which is the most simplistic case and not enough to implement the full MapReduce model.

    Prikaži ovu nit
    Poništi
  2. 2. velj

    IMHO, the prog-lang' efforts and focus are very inadequate to deal with the onslaught of more and more CPU cores. The conversation should have been, a long time ago, about how to optimize MapReduce programs within the compiler like doing chain folding and such....

    Prikaži ovu nit
    Poništi
  3. 2. velj

    I can easily run a computation on 1000s of cores coding a map and a reduce function (via MapReduce model), but when i try to do the same in a high perf. programming language for the 32 cores inside a single computer all i have to work with are threads, mutexes, locks...

    Prikaži ovu nit
    Poništi
  4. 1. velj

    This is why i'm fond of saying that SIMD is not as much a computational optimization but it is a memory/cache optimization, as it makes it simpler for the compiler/CPU to use the SIMD register space more effectively.

    Prikaži ovu nit
    Poništi
  5. 1. velj

    Another advantage is that if one is careful to load, pass around and use the matrix xV, yV, zV, posV individually as SIMD registers he'll make it simpler for the compiler to keep the whole matrix inside the CPU in SIMD registers instead of spilling out into memory/caches.

    Prikaži ovu nit
    Poništi
  6. 1. velj

    If one codes the same using vec3 SIMD types he'll get something like this: m_xV * Point.x + m_yV * Point.y + m_zV * Point.z + posV . The whole thing is simpler to write and understand, and also faster to execute.

    Prikaži ovu nit
    Poništi
  7. 1. velj

    Exposing internal CPU types as programming language types can simplify and speedup a lot of code. For example look at any transformation matrix multiplication with a vector coded the normal way. It'll be speaking to the CPU using float/double types and it'll involve a lot of code

    Prikaži ovu nit
    Poništi
  8. 1. velj

    A certain way that i'm lately fond of looking at CPU internals is as typed systems. The types that CPUs support are the various scalar types, and the SIMD types. SIMD types may map to various vector types (vec2,3,4) and for bigger SIMD sizes to whole arrays.

    Prikaži ovu nit
    Poništi
  9. 26. sij

    The standard exponential smoothing definition works with fixed dt steps. For variable dt steps we are using this*: y = prev_y + (x - prev_y) * min(rate * dt, 1) *the full variable rate code is available in filters.lua in our game

    Prikaži ovu nit
    Poništi
  10. 26. sij

    An exponential smoother is useful with PID controllers too, where it can remove troublesome high frequencies on either the input of the controller or the output or the input of D (my favorite placement).

    Prikaži ovu nit
    Poništi
  11. 26. sij

    In math it is exponential smoothing, in finance it is exponential moving average (EMA), in audio it is the first-order IIR or a low-pass filter. All these are the same thing. Throwing out high frequencies of a signal smooths it and also kind of averages it.

    Prikaži ovu nit
    Poništi
  12. 26. sij

    There are some concepts so useful that different fields are using them with different names and conceptualizations. Such a concept, very useful in gamedev too, is exponential smoothing.

    Prikaži ovu nit
    Poništi
  13. 24. sij
    Prikaži ovu nit
    Poništi
  14. 24. sij

    The one failure i keep coming back to re-read every few years is the "Therac-25": , . Where denialism of software's problems, allowed a corporation's product to fry people for many years.

    Prikaži ovu nit
    Poništi
  15. 24. sij

    I'm a great fan of expert failure stories as it reminds me to be cautionary of expertise's application limits. LWN has an awesome article from on that:

    Prikaži ovu nit
    Poništi
  16. 1. sij

    - did some personal research with LuxRender's spatial indexes - Co-founded BeamNG and had to leave behind DB academic research (which i loved) - Helped grow BeamNG to more than 1M sales and 40 people with 0 debt or any outside funding

    Prikaži ovu nit
    Poništi
  17. 1. sij

    - in my free time i did open source coding on physics simulation core of Rigs of Rods where i optimized it by ~2x, wrote collision detection subsystem (reusing my DB multidimensional spatial index work), mud/sand simulation, rewrote friction core

    Prikaži ovu nit
    Poništi
  18. 1. sij

    - research on distributed graph processing, infinite stream data processing, adaptive compression of big data network streams, and compression of big data storage

    Prikaži ovu nit
    Poništi
  19. 1. sij

    My decade in review: - worked as a DB researcher creating a functional-relational database system - worked on research projects involving managing protein data, processing millions of research papers, creating distributed and privacy preserving algorithms for human brain research

    Prikaži ovu nit
    Poništi
  20. All this time i was thinking that LLVM's clean and minimal output (vs GCC's and MSVC's bloated with XORs output) was the better one. After spending an afternoon trying to force MSVC to omit them, it makes sense now why they add them. This also explains why LLVM is slower.

    Prikaži ovu nit
    Poništi

Čini se da učitavanje traje već neko vrijeme.

Twitter je možda preopterećen ili ima kratkotrajnih poteškoća u radu. Pokušajte ponovno ili potražite dodatne informacije u odjeljku Status Twittera.

    Možda bi vam se svidjelo i ovo:

    ·