Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!



Linux Needs Resource Management For Complex Workloads

raxx7 Re:complex application example (161 comments)

Interesting. I sounds a bit like an application I have.
Like yours, it involves UDP and Python.
I have 150.000 "jobs" per second arriving in UDP packets. "Job" data can be between 10 and 1400 bytes and as many "jobs" are packed into each UDP packet as possible.

I use Python because, intermixed with the high performance job processing, I also mix slow but complex control sequences (and I'd rather cut my wrists than move all that to C/C++).
But to achieve good performance, I had to reduce Python's contribution to the critical path as much as possible and offload to C++.

My architecture has 3 processes, which communicate through shared memory and FIFOs.
The shared memory is divided into fixed size blocks, each big enough to contain the information for a maximum size jobs.

Processs A is C++ and has two threads.
Thread A1 receives the UDP packets, decodes the contents, writes the decoded job into a shared memory block and stores the block index number into a queue.
Thread A2 handles communication with process B. This communication consists mainly of sending process B block index numbers (telling B where to get job data) and receiving block index numbers back from process B (telling A that the block can be re-used).

Process B is a single threaded Python.
When in the critical loop, it's main job is to forward block index numbers from process A to process C and from process C back to process A.
(It also does some status checks and control functions, which is why it's in the middle).
In order to keep the overhead low, the block index numbers are passed in batches of 128 to 1024 (each block index number corresponding to a job).

Process C is, again, multi-threaded C++.
The main thread takes the data from the shared memory, returns the block index numbers to process B and pushes the jobs through a sequence of processing modules, in batches of many jobs.
Withing each processing module, the module hands out the batch of jobs to a thread pool and back, while preserving the order.

about two weeks ago

BMW, Mazda Keen To Meet With Tesla About Charging Technology

raxx7 Re:And again... (137 comments)

It's actually pretty natural.
Usually, standards aren't created in a void. Before a standard can be written and agreed, someone has two design, test, maybe deploy real stuff.
More often than not, different teams will explore different avenues of research. And once they have invested, nobody wants to throw away their work and move to someone else's spec.
On the other hand, this often takes multiple iterations to reach a good standard

If you look at it...
CHADEMO has been around since 2010 and for a while, it was the only real solution.
But Tesla didn't like it, probably because of licensing terms, bulkiness and limited power (62.5 kW max), so they created their own for the Model S.
Other manufacturers and other players did not like it, for similar reasons. And Tesla's solution was proprietary.
So they went ahead and created yet another standard.

Finally, Tesla has decided to play nice.

about a month and a half ago

BMW, Mazda Keen To Meet With Tesla About Charging Technology

raxx7 Re:nissan or mazda? (137 comments)

Model S' battery has both more capacity and the ability to supply and absorb more power.

I think for a given technology, battery capacity and power (both in and out) tend to be related.

about a month and a half ago

Microsoft Runs Out of US Address Space For Azure, Taps Its Global IPv4 Stock

raxx7 Re:No more private networks? (250 comments)

By assign, I mean giving them an address.
Whether it's by static configuration, stateless auto-configuration or DHCP.

about a month and a half ago

Microsoft Runs Out of US Address Space For Azure, Taps Its Global IPv4 Stock

raxx7 Re:No more private networks? (250 comments)

Yes and no.

Yes, you'll need to assign every one of your machines an address which is based on the prefix assigned to you by your ISP.
In the absence of NAT66, your computers will need these addresses to access the internet.

No, you can additionally assign your machines an address based on a unique local address prefix.
You should to use a randomly generated ULA prefix to avoid future conflicts (eg, you need to establish a VPN to another network also using ULA).
But otherwise, it's legal to use a trivial prefix (FD00:whatever).

about a month and a half ago

Are the Glory Days of Analog Engineering Over?

raxx7 Changing skill sets (236 comments)

As usual, an interesting article with a terrible Slashdot title, overplaying the aspect of analog vs digital.

In fact, it's a lot more a matter of discrete vs integrated.

Decades ago, people designed and built digital logic, entire digital computers even, based on discrete (individual) valves or transistors.
Then, we moved to designing them based on many small integrated circuits which performed simple logic functions, like the 7400 series TTL circuits.
And then we moved to highly integrated digital circuits.
I've used micro-processors, field programmable gate arrays and even designed custom ASICs. But outside school, I never used a 7400 chip, much less design an AND gate based on discrete BJT transistors.
It's all digital, but it's different skill sets.

A similar change of skills happens for analog designers.
Some things that 20 years ago were done by a circuit on a board using discrete transistors are now done inside an integrated circuit.
Again, it's all analog but it's different skill sets.
(Some others, have moved from fully analog to mixed signal, digitizing analog signals and then processing them digitally).

Analog skills are still much needed.
Nowadays, the highly integrated digital circuits communicate between themselves at multi-gigabit speeds and our board designs face issues that, 20 years ago, were a concern only for RF analog engineers

But the needed analog skills are changing.
For example, when designing integrated circuits, it's increasingly necessary to be aware of the physical issues that happen at the sub-micron scale.
Being able to design a RF amplifier based on discrete HBT does not necessarily prepare you do design one in a sub-micron integrated circuit.

about a month and a half ago

Red Hat Enterprise Linux 7 Released

raxx7 Re:Is this still a good OS for desktop? (231 comments)

Not any more than ext4.

ext3 was an odd ball. It defaulted to a behavior where creating a file, writing into it and then renaming over into another file would _guarantee_ that after a crash you'd either get the old file or the new file.
XFS (and AFAIK all the other Linux journaled file systems) implemented did not provide such guarantees unless the application used an fsync/fdatasync before the rename.

However, since a) ext3 was popular and b) fsync could be pathologically slow on ext3, many applications became reliant on ext3's behaviour.
The net result was that, for other filesystems, after a crash users would be faced with files full of zeros.
It became a widespread problem when ext4 became the default, as it used much of the same policy of XFS.

Meanwhile, this has mostly been fixed.
Partially, because ext4's widespread usage, applications began to use fsync properly again.
Partially, XFS and ext4 developers patched the filesystem to, under some circumstances, emulate ext3's behavior.

about a month and a half ago

Musk Will Open Up Tesla Supercharger Patents To Spur Development

raxx7 DC charging standards (230 comments)

There are three competing DC charging standards in North America:
- The widely deployed Chademo (= 62.5 kW), backed by Japanese automakers mostly
- The upcoming, not yet deployed, CCS (= 90 kW), backed by SAE, a large number of western automakers and, increasingly, by
- Tesla's Supercharger ( = 120 kW?), which is used only by Tesla.

This is, of course, a f**king mess, which could undermine the efforts to build comprehensive charging networks.
However, it's a manageable mess.
While high power DC charging stations are expensive, having them support multiple standards adds little to the cost (5% per standard or less).
The competition between Chademo and SAE CCS looks like it will be resolved this way: AFAIK, pretty much any new DC charging station deployments looks to be dual standard.

Tesla was basically being left out. While they have built a very interesting network and they have a superior specification, they can't expect to cover all of North America with their own charging stations, while the rest of the world is using combined Chademo/CCS station.

Opening up their specification is a necessary step for them to play along with the rest of the world.

about 1 month ago

B-52 Gets First Full IT Upgrade Since 1961

raxx7 Re:Missles and drones have to be cheaper than a B- (190 comments)

Bombs, even precision GPS or laser guided ones, are much cheaper than missiles. And a B-52 can carry a lot of them.
As a platform for loitering around an area and dropping precision weapons as requested, it should be the most cost effective platform USAF has.
And the option of carpet bombing is occasionally useful too.

about 2 months ago

Why Scientists Are Still Using FORTRAN in 2014

raxx7 Re:not in the field, eh? (634 comments)

First, my comment wasn't generally about whether C or Fortran is better.
I just just illustrating that C's aliasing isn't as much as an obstacle for vectorization as it's often said (and I probably said so in the past, so I'm also guilty).
In general, Fortran arrays and slicing map to pretty trivial C code. Most people can write decent stuff for that. Getting it to vectorize isn't hard.

Secondly, AFAIK, arrays and array slices in Fortran need to be used with a bit of care.
In some situations it can lead the compiler to copy the data into a temporary array (eg, passing a slice as a function parameter).
Another issue is that in a array with 2 or more coordinates, only one coordinate has a memory layout suitable for vectorization in a CPU without scatter/gather (which you may want to avoid anyway if seeking ultimate performance).
Dealing with this issues requires a good understanding of these issues, the language and the compiler's modus operandis.
Fundamentally, arrays in any language are trivial when at the microscopic language but choosing the right strategy for the full program can be a challenge in any language.

Third, having spent more time that I'd like trying to hammer into a few scientists that you need to avoid loops and use array operations to get good performance out of MATLAB®, I would say that some scientists' brains are better suited to hand writing loops than array manipulation.

about 3 months ago

Why Scientists Are Still Using FORTRAN in 2014

raxx7 Re:not in the field, eh? (634 comments)

stupid me... forgot the tags

void f(int n, float *a, float *b, float *z)
        int i;
        for(i = 0; i &lt n; i++)
                z[i] = a[i]+b[i];

about 3 months ago

Why Scientists Are Still Using FORTRAN in 2014

raxx7 Re:not in the field, eh? (634 comments)

I suspect Fortran makes it easier for compiler writers, but for the compiler user the difference is tiny.
Both GCC and ICC can vectorize the following piece of code, by generating code with a run-time check for aliasing and two paths: a vectorized path and a scalar path.

This code is pretty trivial, but I think the method is valid for most(all?) possible uses of Fortran arrays.

In my experience, with a bit of care in code writing (and reading the compiler's vectorization reports), ICC can vectorize pretty complex, but readable, standard and portable, loops.

void f(int n, float *a, float *b, float *z)
        int i;
        for(i = 0; i

about 3 months ago

Why Scientists Are Still Using FORTRAN in 2014

raxx7 Re:yes really (634 comments)

ATLAS is mostly written in C with a ton of compiler SIMD intrinsics.
It provides a Fortran BLAS and partial LAPACK interface, along with a C BLAS interface.

As you said, YMMV.
From your description, it seems that in your field you spent most of your CPU time performing a relatively small number of large and time consuming operations on matrices. This can be efficiently handled by an interpreted language (Python, MATLAB, etc) with an efficient underlying implementation of matrix operations.
Some of those implementations have a very long history and they're written in Fortran, with C interfaces available (which is how they're built into Python and Matlab).
And there isn't any kind of pressing need to re-write them into C or whatever.

Other areas have different profiles.
Particle physics is completely different. Most of the CPU time is spend a very large number of tiny operations, comparisons and branching.
Such code needs to be written in a compiled language, like Fortran or C/C++.
And the choice nowadays for new code is, by far, C/C++. They even rewrote their main simulation package (GEANT) from Fortran to C++. I think they really felt the need of OOP to handle complex models.

More generally, most _new_ critical loop parts are written in C/C++, albeit with the possible usage of old Fortran libraries in the cases they exist.
And non critical loop parts are often written in Python or etc.

about 3 months ago

Ask Slashdot: Practical Alternatives To Systemd?

raxx7 Re: How does it affect me? (533 comments)

The Linux Bluetooth stack lives outside the kernel. Bluetooth audio devices are not accessible as OSS or ALSA hardware devices.
There is an alsalib plugin that lets alsa applications talk to Bluetooth audio, but it's got a number of limitations.

PulseAudio provides transparent, robust, behavior for both OSS/ALSA hardware devices and Bluetooth devices (as long as network).

about 3 months ago

AMD Develops New Linux Open-Source Driver Model

raxx7 Re:Same'ol firmware separated from kernel module a (142 comments)

Not sure what you're thinking..

A Linux graphics card driver has 3 components: the kernel module, the X module and the libGL/CL/etc implementation.
There are two AMD driver for Linux -- the proprietary one and the open source one, each with it's own 3 components.

The proprietary one offers better OpenGL/OpenCL performance and features (eg, OpenGL 4.4 instead of 3.1), as well as official certification for a number of applications.
But it also tends to suffer from system integration issues, at the kernel and X level. Sometimes, they work poorly for basic things, they don't work with the latest kernel or X for a while, etc.

So, what looks here is that AMD wants to reduce the proprietary to the libGL/CL component and leverage on the open source for the kernel driver. Maybe X driver too, eventually.

about 4 months ago

Walmart Unveils Turbine-Powered WAVE Concept Truck

raxx7 Re:Not going to happen... (242 comments)

Yes, trains are diesel-electric.
However, it's not done for fuel efficiency; it's done for reliability.
Mechanical transmissions, like those used in cars and trucks, are too complicated and fragile at the levels of power and torque of a locomotive.
Even hydraulic transmissions are hard to get right at these power levels (pretty much only Voith managed to).

So, in the end, locomotives in general use diesel-electric. You do find a lot of diesel rail cars with hydraulic and even some mechanical.

In rail, specially on american freight rail, reliability trumps fuel efficiency by a long shot.
The diesel engines used in american freight locomotives are much less fuel efficient than most other industrial diesel engines of comparable power.
The operators would rather leave them running on idle for days than shutting them down on cold weather or fitting an APU.
They are, however, cheap to build, cheap to maintain and very reliable.,

about 5 months ago

Ubuntu To Switch To systemd

raxx7 Re:like conceeding that air is necessary (279 comments)

Users rightfully do not care about what init system they use, as long as it works.
But making it work requires time and effort from some people. And we don't live in a world of infinite resources.

By announcing they're switching Ubuntu from Upstart to systemd, Ubuntu aligned themselves with the majority of the developer comunity and Ubuntu reduced the ammount of effort they and others developers have to put in to make it work efficiently as you said.
Ubuntu will not have to write and debug Upstart configuration files for services, they can just the share the same systemd files as Debian.
GUbuntu and KUbuntu developers will have less trouble to make Gnome Shell and KWin, which are moving towards somewhat depending on systemd, work on a Ubuntu derived distribution.

And that means they can actually spend time fixing other stuff.

about 6 months ago

Debian Technical Committee Votes For Systemd Over Upstart

raxx7 Re:Beware journald... (379 comments)

jackd is not a jack of all trades.
It's a specialized application, with a very specific purpose, that it does very well.
Making a general purpose sound server requires a different set of compromises.

"Fixing" those things in jackd means, at best, extra code to support features that are not primary goals for jackd. At worse, it means sacrificing some of jackd's critical features, such as low latency at the expense of everything else.

It Lennart tried to fix jackd, then the proverbial wrench would be thrown at his head by the jackd developers.

about 6 months ago

Debian Technical Committee Votes For Systemd Over Upstart

raxx7 Re:Beware journald... (379 comments)

No, jackd and pulseaudio try to solve different sets of problems.
They don't compete even the slightest. If you think otherwise, you're completely off base.

jackd is not a generic sound server, doesn't want to be and hates anyone who thinks it should be one.
jackd is a virtual patch panel for audio. It let's you take audio sources (input hardware or applications) and connect then to audio sinks (output hardware or other applications). And it does so while striving for absolute minimum latency.

But it's ill suited for general purpose.
jackd needs to be configured manually, with some detail. Eg, since jackd does not sample rate conversion, you need to select a rate.
jackd does not support hot plugging of hardware, you need to restart it.
jackd of course, will not automagically redirect your audio when you plug in your USB headset.
jackd does not provide per-application volume control.
jackd has no bluetooth support and, AFAIK, it doesn't really like the alsa bluetooth plugin.
jackd is CPU intensive.
jackd is sensitive to misbehaved applications. ...

about 6 months ago

Gnome 3.12 Delayed To Sync With Wayland Release

raxx7 Re:How X/Wayland work (204 comments)

You're 90% right, but the devil is in the details.
The X protocol allows applications to send drawing commands like "draw a line here, circle there, text with this font over there". You can also store pixmaps to the server and then reference them.
But these drawing commands can't draw anti-aliased shaped, so in the late 1990s X applications were either pushing lots of pixmaps or pushing so many tiny drawing commands it was worse than pushing pixmaps.

Then came XRender. XRender is based on pixmaps/gylphs, but also provides masking/blending operations on them.
This allows for better re-use of server stored pixmaps, which allowed for anti-aliased applications with less network traffic.
All in all, it's pretty slick.

But history is repeating itself and application developers are again going back to pushing lots of pixmaps. Qt developers concluded that, for local clients, their client-side renderer was *much* faster than the XRender based one and at some point made it the default for Qt4. For Qt5, they didn't bother with a XRender based one.

To top it off, whether it's XRender or brute force pixmap, modern X applications send so many commands they need a lot of bandwidth.Also, most X applications were never written to tolerate high latency connections, even though the protocol is asynchronous.
So, remote X tends to work poorly over the Internet, leading a lot of us to use tools like VNC, NX or Xpra.

The Xpra server runs as specialized X server and X compositor in the remote system, where the X application is to be run. Then it takes the contents of the X application's windown, scans for changed parts, compresses and sends it over to the Xpra client, which then draws the application window in the local system.
Since the X application is talking to a local X server, there's no latency there. And the diffiing/compressing ends up requiring less bandwidth than sending the raw X commands.

So, history has shown twice supporting drawing commands is a fool's errand, Wayland only supports pushing pixmaps. And only through shared memory, a Wayland compositor and a Wayland application must always to be on the same machine.

But there isn't anything stopping anyone from implementing a Wayland compositor that does what the Xpra server does. So, that's pretty much plan "A" for running Wayland applications remotely.

about 6 months ago


raxx7 hasn't submitted any stories.


raxx7 has no journal entries.

Slashdot Login

Need an Account?

Forgot your password?
or Connect with...

Don't worry, we never post anything without your permission.

Submission Text Formatting Tips

We support a small subset of HTML, namely these tags:

  • b
  • i
  • p
  • br
  • a
  • ol
  • ul
  • li
  • dl
  • dt
  • dd
  • em
  • strong
  • tt
  • blockquote
  • div
  • quote
  • ecode

"ecode" can be used for code snippets, for example:

<ecode>    while(1) { do_something(); } </ecode>