• Read again, i correct about more of my philosophy about why i am postin

    From World-News2100@21:1/5 to All on Sat Nov 27 12:37:08 2021
    Hello,



    Read again, i correct about more of my philosophy about why i am posting
    about my PDQ and more..

    I am a white arab from Morocco, and i think i am smart since i have also invented many scalable algorithms and algorithms..

    I am also posting about my PDQ below since it is also important
    to know about it and you can understand it it more by reading my
    following thoughts about 3D stacking and about parallelism:

    https://groups.google.com/g/alt.culture.morocco/c/o-BJDe_WILo

    And notice that i am saying in the link above the following:

    More of my philosophy about the knee of an M/M/n queue and more..

    Here is the mathematical equation of the knee of an M/M/n queue in
    queuing theory in operational research:

    1/(n+1)^(1/n)

    n is the number of servers.

    So then an M/M/1 has a knee of 50% of the utilization, and the one of
    an M/M/2 is 0,578, so i correct below:

    More of my philosophy about the network topology in multicores CPUs..

    I invite you to look at the following video:

    Ring or Mesh, or other? AMD's Future on CPU Connectivity

    https://www.youtube.com/watch?v=8teWvMXK99I&t=904s

    And i invite you to read the following article:

    Does an AMD Chiplet Have a Core Count Limit?

    Read more here:

    https://www.anandtech.com/show/16930/does-an-amd-chiplet-have-a-core-count-limit

    I think i am smart and i say that the above video and the above article
    are not so smart, so i will talk about a very important thing, and it is
    the following, read the following:

    Performance Scalability of a Multi-core Web Server

    https://www.researchgate.net/publication/221046211_Performance_scalability_of_a_multi-core_web_server

    So notice carefully that it is saying the following:

    "..we determined that performance scaling was limited by the capacity of
    the address bus, which became saturated on all eight cores. If this key obstacle is addressed, commercial web server and systems software are well-positioned to scale to a large number of cores."

    So as you notice they were using an Intel Xeon of 8 cores, and the
    application was scalable to 8x but the hardware was not scalable to 8x,
    since it was scalable only to 4.8x, and this was caused by the bus
    saturation, since the Address bus saturation causes poor scaling, and
    the Address Bus carries requests and responses for data, called snoops,
    and more caches mean more sources and more destinations for snoops that
    is causing the poor scaling, so as you notice that a network topology of
    a Ring bus or a bus was not sufficient so that to scale to 8x on an
    Intel Xeon with 8 cores, so i think that the new architectures like Epyc
    CPU and Threadripper CPU can use a faster bus or/and a different network topology that permits to both ensure a full scalability locally in the
    same node and globally between the nodes, so then we can notice that a sophisticated mesh network topology not only permits to reduce the
    number of hops inside the CPU for good latency, but it is also good for reliability by using its sophisticated redundancy and it is faster than previous topologies like the ring bus or the bus since
    for example the search on address bus becomes parallelized, and it looks
    like the internet network that uses mesh topology using routers, so it parallelizes, and i also think that using a more sophisticated topology
    like a mesh network topology is related to queuing theory since we can
    notice that in operational research the mathematics says that we can
    make the queue like M/M/1 more efficient by making the server more
    powerful, but we can notice that the knee of a M/M/1 queue is around 50%
    , so we can notice that by using in a mesh topology like internet or
    inside a CPU you can by parallelizing more you can in operational
    research both enhance the knee of the queue and the speed of executing
    the transactions and it is like using many servers in queuing theory and
    it permits to scale better inside a CPU or in internet.

    More of my philosophy about the analytic queueing-circuit analyzer PDQ
    and more..

    I think i am smart, so as you have just noticed i have just talked
    about timesharing and coroutines in the following link:

    https://groups.google.com/g/alt.culture.morocco/c/tN_O-AgkGjY

    And i have just talked about Markov chains in mathematics and about
    Petri Nets here:

    https://groups.google.com/g/soc.culture.quebec/c/LPE4zR-BqHY

    I now i will talk about my PDQ for Delphi and Freepascal:

    This is a port by Amine Moulay Ramdane of PDQ version 6.2.0 to Delphi
    on Windows and to Freepascal on both Windows and Linux, i have also
    provided you with two demos, one queuing MM1 demo, and another Jackson
    network demo. Also i have provided you with my HTML tutorial on how to
    solve analytically the Jackson network problem provided to you as a PDQ
    demo.

    PDQ is an analytic queueing-circuit analyzer made freely available under MIT/X11 license from: http://www.perfdynamics.com/Tools/PDQ.html

    You can download it from my website here:

    https://sites.google.com/site/scalable68/pdq-for-delphi-and-freepascal

    And here is an example in Delphi and Freepascal of the Jackson network
    demo that i have included inside the zip file(and you can look
    at my mathematical modeling of it here in my website: https://sites.google.com/site/scalable68/jackson-network-problem):

    ---

    program test_network;


    uses pdq64,LinSys;


    type router1 = array of pansichar;
    servTime1 = array of double;
    visitRatios1 = array of double;
    serviceDemands1 = array of double;
    var

    A, b, x : TMatrix;
    arrivRate:double;
    work:pansichar;
    router:router1;
    servTime:servTime1;
    visitRatios:visitRatios1;
    serviceDemands:serviceDemands1;
    i:integer;

    begin

    setlength(router,3);
    setlength(servTime,3);
    setlength(visitRatios,3);
    setlength(serviceDemands,3);


    arrivRate := 0.50;
    work:='Traffic';

    router[0]:='Router1';
    router[1]:='Router2';
    router[2]:='Router3';

    servTime[0]:=1.0;
    servTime[1]:=2.0;
    servTime[2]:=1.0;

    A := TMatrix.Create (3,3);
    b := TMatrix.Create (3,1);
    x := TMatrix.Create (3,1);

    A[1,1] := 1.0; A[1,2] := 0.0; A[1,3] := -0.2;
    A[2,1] := -0.5; A[2,2] := 1.0; A[2,3] := 0.0;
    A[3,1] := -0.5; A[3,2] := -0.8; A[3,3] := 1.0;

    b[1,1] := 0.5; b[2,1] := 0.0; b[3,1] := 0.0;

    LinSys.gauss(A, b, x);

    visitRatios[0]:=x[1,1]/arrivRate;
    visitRatios[1