Language Selection

English French German Italian Portuguese Spanish

Programming: GCC, C++, Python and PHP

Filed under
Development
  • AMD GCN GPU Target Continuing To Improve For The GCC 10 Compiler

    With the recent release of the GCC 9 stable compiler there is the initial "AMD GCN" GPU target/back-end merged. However, for this GNU Compiler Collection release the AMD GCN target isn't all that useful but continued work on it gives us hope of seeing it in good shape for next year's GCC 10 release.

    With the GCC 9.1 release, the AMD GCN back-end can only handle running basic single-threaded programs... Not exactly useful for graphics cards. The GCC 9 code supports targeting the Fiji and Vega 10 GCN instruction set architecture.

  • IBM Begins Plumbing "Future" Processor Into GCC Compiler - POWER10?

    IBM engineers have landed initial support for "-mcpu=future" into the GCC compiler... As they say in the commit message, "a future architecture level, as yet unnamed."

    This IBM "future" processor is being added to the POWER architecture code succeeding POWER9. More than likely, its the early enablement work for POWER10.

  • Little Trouble in Big Data – Part 1

    A few months ago, we received a phone call from a bioinformatics group at a European university. The problem they were having appeared very simple. They wanted to know how to usemmap() to be able to load a large data set into RAM at once. OK I thought, no problem, I can handle that one. Turns out this has grown into a complex and interesting exercise in profiling and threading.

    The background is that they are performing Markov-Chain Monte Carlo simulations by sampling at random from data sets containing SNP (pronounced “snips”) genetic markers for a selection of people. It boils down to a large 2D matrix of floats where each column corresponds to an SNP and each row to a person. They provided some small and medium sized data sets for me to test with, but their full data set consists of 500,000 people with 38 million SNP genetic markers!

  • Why precompiled headers do (not) improve C++ compile times

    Would you like your C++ code to compile twice as fast (or more)?

    Yeah, so would I. Who wouldn't. C++ is notorious for taking its sweet time to get compiled. I never really cared about PCHs when I worked on KDE, I think I might have tried them once for something and it didn't seem to do a thing. In 2012, while working on LibreOffice, I noticed its build system used to have PCH support, but it had been nuked, with the usual poor OOo/LO style of a commit message stating the obvious (what) without bothering to state the useful (why). For whatever reason, that caught my attention, reportedly PCHs saved a lot of build time with MSVC, so I tried it and it did. And me having brought the PCH support back from the graveyard means that e.g. the Calc module does not take 5:30m to build on a (very) powerful machine, but only 1:45m. That's only one third of the time.

    In line with my previous experience, on Linux that did nothing. I made the build system support also PCH with GCC and Clang, because it was there and it was simple to support it too, but there was no point. I don't think anybody has ever used that for real.

    Then, about a year ago, I happened to be working on a relatively small C++ project that used some kind of an obscure build system called Premake I had never heard of before. While fixing something in it I noticed it also had PCH support, so guess what, I of course enabled it for the project. It again made the project build faster on Windows. And, on Linux, it did too. Color me surprised.

  • KDAB at CppCon 2019

    CppCon is the annual, week-long face-to-face gathering for the entire C++ community – the biggest C++ event in the world. This year, for the first time, CppCon takes place in the stunning Gaylord Rockies Hotel and Convention Center in Aurora, Colorado, very near Denver International Airport.

  • Clear Linux Discovers Another AVX2/AVX512 Fix/Optimization To Yield Better Performance

    For those running a system with AVX-512 support, Clear Linux builds as of this week should be yielding even better performance on top of their existing AVX2 and AVX-512 optimizations.

    The Intel developers working on Clear Linux uncovered an issue how the new GCC 9 compiler has been building the important libm math library poorly in AVX2/AVX-512 mode. This poor code compilation yielded slowdowns in various math functions since the switch to the GCC 9 compiler.

  • Building Machine Learning Data Pipeline using Apache Spark
  • It is easier to gather package meta-data from PyPI package ecosystem, once know the right way
  • Python 2.7 vs Python 3.4 ─ What should Python Beginners choose?
  • Be Quick or Eat Potatoes: A Newbie’s Guide to PyCon
  • Remote Development with Wing Pro

    In this issue of Wing Tips we take a quick look at Wing Pro's remote development capabilities.

  • Data School: Data science best practices with pandas (video tutorial)
  • PHP extensions status with upcoming PHP 7.4

More in Tux Machines

Games: vkBasalt, Ikey Doherty, Crusader Kings II, Sunless Skies

  • vkBasalt, an open source Vulkan post processing layer for Contrast Adaptive Sharpening

    This is an interesting open source project! vkBasalt is a new Vulkan post processing layer that currently supports Contrast Adaptive Sharpening. Unlike Radeon Image Sharpening, vkBasalt supports Linux and works with both NVIDIA and AMD. This isn't entirely reinventing the wheel though, as it's partly based upon the ReShade port of AMD's CAS. Still, it's fun to see what hackers are able to do with little layers like this, especially when we don't have official support.

  • Ikey Doherty Launches Open-Source Focused Game/Software Development Company

    Well known open-source figure Ikey Doherty who rose to prominence for his work on the Solus Linux distribution and then went on to work on Intel's Clear Linux project is now having his hand at game engine development. Ikey shared with us that he left Intel back in May to begin his new adventure: Lispy Snake. Lispy Snake is a UK software development firm that at least initially is working on a game engine and games. Given Ikey's experience, the firm is focused on leveraging open-source technologies.

  • After making Crusader Kings II free, Paradox are now giving away The Old Gods expansion

    It's been a bit of a whirlwind of Paradox news recently and we have even more to share. With a tiny amount of effort, you can get The Old Gods expansion for Crusader Kings II free. This is after Crusader Kings II was set free to play and Crusader Kings III was announced just like I suggested it would be.

  • Failbetter Games are upgrading owners of Sunless Skies to the Sovereign Edition next year

    Failbetter Games have announced that Sunless Skies is getting a bit of an upgrade with the Sovereign Edition and it's going to be free to existing purchasers when it's release next year. Part of the reason, is that it will be releasing on Consoles so they're polishing the experience up some more. It's not just a special console edition though, it's coming with a bunch of new content and various improvements to the flow of it. To release on PC at the same time as Consoles, free for existing players.

What To Do After Installing Ubuntu 19.10 Eoan Ermine

In this traditional article special for Ubuntu 19.10 Eoan Ermine you will find my suggestions and recommendations in 3 parts, work (including date/time adjustments, productivity tools), non-work (including extensions, podcasts, RSS, codecs), and system maintenance (including CPU-X, repository setup, auto-backup). I also have suggestion for you wanting Global Menu on this Eoan Ermine OS at the end. Adjust it once and use freely everyday. Finally, I hope Ubuntu 19.10 will be your best tool you could imagine to use without worry. Happy working! Read more

Python Programming Leftovers

  • Pylint: Making your Python code consistent

    Pylint is a higher-level Python style enforcer. While flake8 and black will take care of "local" style: where the newlines occur, how comments are formatted, or find issues like commented out code or bad practices in log formatting. Pylint is extremely aggressive by default. It will offer strong opinions on everything from checking if declared interfaces are actually implemented to opportunities to refactor duplicate code, which can be a lot to a new user. One way of introducing it gently to a project, or a team, is to start by turning all checkers off, and then enabling checkers one by one. This is especially useful if you already use flake8, black, and mypy: Pylint has quite a few checkers that overlap in functionality.

  • PyDev of the Week: Sophy Wong

    This week we welcome Sophy Wong (@sophywong) as our PyDev of the Week! Sophy is a maker who uses Circuit Python for creating wearables. She is also a writer and speaker at Maker events. You can see some of her creations on her Youtube Channel or her website. Let’s take a few moments to get to know her better!

  • Erik Marsja: Converting HTML to a Jupyter Notebook

    In this short post, we are going to learn how to turn the code from blog posts to Jupyter notebooks.

Proper Linux Screen Sharing Coming to Chromium & Electron Apps like Discord

A patch to add ‘screen enumeration’ to the Chromium browser is currently pending merge upstream. Once this fix is accepted Chromium and Chromium-based apps (like Discord) will finally support full screen sharing on Linux in a manner similar to that on Windows and macOS. Not being a multi-monitor user, or someone who shares their screen often, I wasn’t aware of this particular limitation until recently. So I’ll explain. Read more