Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

About C++11 and CORBA for numerics

  1. Jun 12, 2013 #1
    Prof. Bjarne Stoustrup of course knows where his towel is when it comes to C++11.

    The Matrix example he provided at the 2012 GoingNative Con [Str12] is indeed an appetizer if one has ever dealt with pushing large float arrays around, and I find it remarkable that C++11's share for numerical has not yet rocketed, because that gives way to very expressive style of coding.

    The other big fish of C++11 for numerics is "Lambda"-Expressions; that makes it e.g. possible to Integrate over a given Riemann-partition in a single line of code.

    ---

    But nowadays, even the best language concepts do pay little if there are no seamless means to push the data into a component of a distributed system.

    Consider a number-crunching application core that is stateful and idle while waiting for data that is to be processed depending to the state; e.g. an application that has found certain physically valid morph paths and is now waiting for arbitrary surface data to actually be morphed that way.

    MPI is fine when data arrives sooner-or-later, but what if the arrival of data is depending on user interaction; e.g. because it does not arrive at all be cause the object's update is dropped during culling?

    SOAP would be fine if would not bring a large overhead with it that required a parsing which is often more time-expensive than (vectorized) processing of the workload.

    So CORBA, which is often said to be plainly "dead", still appears the best platform-independent fast solution for this scenario (COM/DCOM is also fast, but MS specific)

    ---

    So CORBA it is - but wait!

    [OMG12] is not exactly what one would call C++11-ish - there are pointers passed around in never-come-back fashion which makes it a QA nightmare. And even "STL" appears sort-of terra incognita for that standard.

    --

    So OMG has recently released [OMG13], a C++11 IDL-binding.

    Fortunately so.
    Fortunately?

    Well - what appears missing even on a first look is delegation-based binding (aka "tie"-implementation) of [OMG12] That is quite strange; especially in the light of improved generics of C++11 - one intuitively would likely expect "more generics" in a C++11 binding than in prior C++-bindings, but definitely not "less generics".

    By glueing together the lifetime of the implementation and the servant by "allowing" inheritance-only, OMG sort-of implies a very bad programming model for concurrent apps - custom "p_impl"ing and per-case custom life-cycle management to protect expensive assets from being d'tored just because the servant runs out of like-keeping refs.

    ---

    I'm yet not sure how to deal with that in a consistent fashion; at least it appears there is a sort of (template-based) "life-cycle layer best practices" needed in supplement to the OMG standard.

    Opinions or advice on that?


    Best regards, Solkar



    [Str12] Stroustrup, Bjarne C++11 Style – A Touch of Class. GoingNative Conference, 2012. http://channel9.msdn.com/Events/Goi...te-Bjarne-Stroustrup-Cpp11-Style?format=flash (Slides available there)
    [OMG12] OMG C++ Language Mapping. OMG, 2012. http://www.omg.org/spec/CPP/1.3
    [OMG13] OMG C++11 Language Mapping. OMG, 2013. http://www.omg.org/spec/CPP11/
     
    Last edited: Jun 12, 2013
  2. jcsd
Know someone interested in this topic? Share this thread via Reddit, Google+, Twitter, or Facebook

Can you offer guidance or do you also need help?
Draft saved Draft deleted