January 16, 2022
On Thursday, 13 January 2022 at 01:19:07 UTC, H. S. Teoh wrote:
> In the above example I literally just added ".parallel" to the code and it Just Worked(tm).

So did I for my weekend raytracer (I am new to D and was pleasantly surprised how easy it was).

    foreach (i, ref pixel; parallel(image.pixels)) {...}


January 17, 2022

On Thursday, 13 January 2022 at 00:41:25 UTC, forkit wrote:

>

For the general programmers/developer, parallelism needs to be deeply integrated into the language and it's std library, so that it can be 'inferred' (by the compiler/optimizer).

Perhaps a language like D, could adopt @parallelNO to instruct the compiler/optimizer to never infer parallelism in the code that follows.

The O/S should also has a very important role in inferring parallelism.

I've had 8 cores available on my pc for well over 10 years now. I don't think anything running on my pc has the slightest clue that they even exist ;-) (except the o/s).

Number of cores is fine, but if you could take advantage of the GPU/CUDA cpu's on say a graphics card as well; THAT would be really cool. Imagine the huge speedup of say 7zip or other where simple processes, pattern matching or encoding/processing could speed up if you could make use of those AS WELL AS the number of cores you have.

For a while I've been making scripts where i find files and split it via xargs; this converts any single-thread program to be run on lots of cores/processes (by running lots of copies with different input files), though in windows it may result in 5 processes for ever 1 you want to run.

Example: find -iname "*.jpg" -print0 | xargs -0 -P $NUMBER_OF_PROCESSORS -n 1 jpegoptim --all-progressive

January 17, 2022

On Monday, 17 January 2022 at 06:13:03 UTC, Era Scarecrow wrote:

>

would be really cool. Imagine the huge speedup of say 7zip or other where simple processes, pattern matching or encoding/processing could speed up if you could make use of those AS WELL AS the number of cores you have.

Yes, but compression/decompression is too complex. You need to be careful with data dependencies so that the computations can be run in parallel on a massive scale. I don't know what the future holds, but today you also need a core to feed the GPU. Maybe in the future the GPU will be able to "feed itself" like an independent actor? Hard to tell. For FPGAs that ought to be a possibility, but they are only available in specialty setups.

Maybe we need an open source computer platform with more interesting hardware (using commodity chips)?

January 17, 2022

On Monday, 17 January 2022 at 18:17:10 UTC, Ola Fosheim Grøstad wrote:

>

On Monday, 17 January 2022 at 06:13:03 UTC, Era Scarecrow wrote:

>

would be really cool. Imagine the huge speedup of say 7zip or other where simple processes, pattern matching or encoding/processing could speed up if you could make use of those AS WELL AS the number of cores you have.

Yes, but compression/decompression is too complex. You need to be careful with data dependencies so that the computations can be run in parallel on a massive scale. I don't know what the future holds, but today you also need a core to feed the GPU. Maybe in the future the GPU will be able to "feed itself" like an independent actor? Hard to tell. For FPGAs that ought to be a possibility, but they are only available in specialty setups.

Maybe we need an open source computer platform with more interesting hardware (using commodity chips)?

Some years ago we got a chance to provides an efficient way to perform efficient computation with library such as https://wiki.dlang.org/LDC_CUDA_and_SPIRV

And recently I put my feedback where D could provide some killer feature in this area: https://forum.dlang.org/thread/fuzvsdlqtklhmxsnzgye@forum.dlang.org

Unfortunately, this will not be possible in the near future, so others language will keep the market

January 17, 2022
On Mon, Jan 17, 2022 at 09:12:52PM +0000, bioinfornatics via Digitalmars-d wrote: [...]
> And recently I put my feedback where D could provide some killer feature in this area: https://forum.dlang.org/thread/fuzvsdlqtklhmxsnzgye@forum.dlang.org
> 
> Unfortunately, this will not be possible in the near future, so others language will keep the market

Why would it not be possible in the near future?

None of the items you listed seem to be specific to the language itself, it seems to be more of an ecosystem issue.


T

-- 
It is widely believed that reinventing the wheel is a waste of time; but I disagree: without wheel reinventers, we would be still be stuck with wooden horse-cart wheels.
January 18, 2022
On Monday, 17 January 2022 at 21:31:25 UTC, H. S. Teoh wrote:
> On Mon, Jan 17, 2022 at 09:12:52PM +0000, bioinfornatics via Digitalmars-d wrote: [...]
>> And recently I put my feedback where D could provide some killer feature in this area: https://forum.dlang.org/thread/fuzvsdlqtklhmxsnzgye@forum.dlang.org
>> 
>> Unfortunately, this will not be possible in the near future, so others language will keep the market
>
> Why would it not be possible in the near future?
>
> None of the items you listed seem to be specific to the language itself, it seems to be more of an ecosystem issue.
>
>
> T

Take one item on the list: developing an equivalent of numpy and scipy. What do you take to be the "near future"? One year away? Two years?

There is no language feature holding these items back. Addressing ecosystem issues is a massive undertaking.

In order for a D clone of even just numpy to be successful, it needs to have a significant user base feeding input back into the development cycle so that it can go beyond simply being churned out by a few overeager developers and actually stabilized so that it becomes useful and robust.

You must also consider that the items that bioinfornatics listed are all somewhat contingent on each other. In isolation they aren't nearly as useful. You might have a numpy/scipy clone, but if you don't also have a matplotlib clone (or some other means of doing data visualization from D) their utility is a bit limited.

His wishlist is a tall order.
January 18, 2022
On Tuesday, 18 January 2022 at 17:03:33 UTC, sfp wrote:
> [snip]
>
> You must also consider that the items that bioinfornatics listed are all somewhat contingent on each other. In isolation they aren't nearly as useful. You might have a numpy/scipy clone, but if you don't also have a matplotlib clone (or some other means of doing data visualization from D) their utility is a bit limited.
>
> His wishlist is a tall order.

Have you tried ggplotd [1]?

[1] https://code.dlang.org/packages/ggplotd
January 18, 2022

On Tuesday, 18 January 2022 at 17:03:33 UTC, sfp wrote:

>

On Monday, 17 January 2022 at 21:31:25 UTC, H. S. Teoh wrote:

>

On Mon, Jan 17, 2022 at 09:12:52PM +0000, bioinfornatics via Digitalmars-d wrote: [...]

>

And recently I put my feedback where D could provide some killer feature in this area: https://forum.dlang.org/thread/fuzvsdlqtklhmxsnzgye@forum.dlang.org

Unfortunately, this will not be possible in the near future, so others language will keep the market

Why would it not be possible in the near future?

None of the items you listed seem to be specific to the language itself, it seems to be more of an ecosystem issue.

T

Take one item on the list: developing an equivalent of numpy and scipy. What do you take to be the "near future"? One year away? Two years?

There is no language feature holding these items back. Addressing ecosystem issues is a massive undertaking.

In order for a D clone of even just numpy to be successful, it needs to have a significant user base feeding input back into the development cycle so that it can go beyond simply being churned out by a few overeager developers and actually stabilized so that it becomes useful and robust.

You must also consider that the items that bioinfornatics listed are all somewhat contingent on each other. In isolation they aren't nearly as useful. You might have a numpy/scipy clone, but if you don't also have a matplotlib clone (or some other means of doing data visualization from D) their utility is a bit limited.

His wishlist is a tall order.

Yes. Better to concentrate on things D can enable, like a great performance programming experience.

D appeals to me primarily because it lets me write simpler performant code. It regularly opens the door to better perf/complexity ratios than C++ for example. This is particularly important in markets where even small performance gains bring large economic benefits, where novel code is indicated.

OTOH, if your value add is more about quickly assembling/rearranging existing components that are sufficiently peformant in themselves and in combination, well, by all means, carry on!

January 18, 2022
On Tuesday, 18 January 2022 at 17:24:03 UTC, jmh530 wrote:
> On Tuesday, 18 January 2022 at 17:03:33 UTC, sfp wrote:
>> [snip]
>>
>> You must also consider that the items that bioinfornatics listed are all somewhat contingent on each other. In isolation they aren't nearly as useful. You might have a numpy/scipy clone, but if you don't also have a matplotlib clone (or some other means of doing data visualization from D) their utility is a bit limited.
>>
>> His wishlist is a tall order.
>
> Have you tried ggplotd [1]?
>
> [1] https://code.dlang.org/packages/ggplotd

I haven't tried it. I also hadn't heard of it before.

Judging from the small number of GitHub issues it appears that it is used by basically no one and that it's missing crucial standard features supported by all mature plotting libraries. In one of the issues the main developer indicated he is no longer adding new features. This library seems to be: 1) quite young, 2) not actively developed, 3) not actively maintained.
January 18, 2022
On Tuesday, 18 January 2022 at 18:32:41 UTC, sfp wrote:
> [snip]
>
> I haven't tried it. I also hadn't heard of it before.
>
> Judging from the small number of GitHub issues it appears that it is used by basically no one and that it's missing crucial standard features supported by all mature plotting libraries. In one of the issues the main developer indicated he is no longer adding new features. This library seems to be: 1) quite young, 2) not actively developed, 3) not actively maintained.

Hadn't realized that. Shame.