Another company using D

Justin Whear justin at economicmodeling.com
Mon Jun 17 13:15:32 PDT 2013


On Mon, 17 Jun 2013 13:22:49 -0500, evansl wrote:

> On 06/17/13 10:48, Justin Whear wrote:
>> On Sun, 16 Jun 2013 17:24:59 +0200, Marco Leise wrote:
>> 
>>> Am Sun, 16 Jun 2013 05:10:39 +0200 schrieb "Vladimir Panteleev"
>>> <vladimir at thecybershadow.net>:
>>>
>>>> On Saturday, 15 June 2013 at 08:04:08 UTC, SomeDude wrote:
>>>>> Should we start a page "They're using D" somewhere ?
>>>>
>>>> This page has been the only remaining red link on the new D wiki for
>>>> a while, so I created it:
>>>>
>>>> http://wiki.dlang.org/Current_D_Use
>>>>
>>>> Feel free to add to it. However, is it OK to add companies to such a
>>>> list just because one person mentioned their company was using D?
>>>
>>> Ask them officially first. They might see it as a win-win situation,
>>> since when programmers realize they can get real jobs in interesting
>>> fields using D, they might actually write resumes to those companies
>>> one day.
>> 
>> I'm mrjnewt from Reddit;  I read the newsgroups Mon-Fri and post
>> infrequently.  The company I work for has been using D since 2008; we
>> have quite a few important pieces written in D, including the API which
>> powers our webtools, an extremely high performance economic simulation,
>> and we're in the process of moving all of our backend data processes to
>> D.
>> 
> Based on:
> 
> http://www.digitalmars.com/d/archives/digitalmars/D/
Slow_performance_compared_to_C_ideas_199429.html
> 
> and the belief that c++ is used a lot in Quant. Finance,
> at least according to:
> 
> http://www.datasimfinancial.com/
> 
> which says:
> 
> C++ is a standard in Quantitative Finance
> 
> I'm wondering why your company is using D?
> Please no flame wars.  I'm pretty experienced with c++
> and only dabbled with D, but I'd really like to know if D is appropriate
> for intensive numerical calculations.
> OTOH, maybe Justin's company does not do heavy numerics.
> 
> -regards,
> Larry

We do some pretty heavy stuff, numerics-wise, though I'm not sure what 
scale you think in.  We have a simulation of the entire US economy (down 
to county and ZIP code geography, highly detailed demographics, all NAICS 
(industry codes), all SOC (occupation codes)) that can be perturbed via 
our online tool and which has response times measured in seconds.  It's 
written entirely in D though it leverages Intel MKL for the linear 
algebra.

Our US data processes are being transitioned over to D, the final product 
of which produces 10+ billion final data points per quarter. The dataset 
is largely synthesized, so there are many intermediate points.  We have a 
lot of custom D code for doing things like solving inconsistent 
hierarchical, many dimensional, highly-underdetermined systems.  We find 
that incorporating as much knowledge at compile time as possible tends to 
give very good results on the performance front.  In some places we use 
CTFE to generate x86 assembly to do tricksy things like avoiding 
branching.

In general I'd say that D's performance has been just fine;  anything 
that isn't fast enough is usually already done better by tried and true C 
libs.  And D makes calling those easy; LAPACK functions pack type and 
size information into their names, we make it easy to call the 
appropriate version by simply creating a general function for each C 
"overload set" that's templated on the type and number of arguments and 
which uses a string mixin to generate a call to the appropriate version 
of the C function.


More information about the Digitalmars-d mailing list