Forums before death by AOL, social media and spammers... "We can't have nice things"
|    sci.logic    |    Logic -- math, philosophy & computationa    |    262,912 messages    |
[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]
|    Message 261,454 of 262,912    |
|    Ross Finlayson to All    |
|    Re: Meta: a usenet server just for sci.m    |
|    29 Nov 25 03:54:06    |
   
   [continued from previous message]   
      
   will employ the superscalar resources as available, with the idea being   
   that "O(1)" is courtesy that it may be a _large_ constant. Instead of a   
   DAG directed-acyclic-graph, the usual idea of the proximity map is a   
   lattice, as reflects the layout that's also essentially the map of the   
   units on the chip as by their traces and the interconnects among the   
   chips or chipsets or devices the units. Then, since the DAG is   
   navigable, the idea is to build the DAGs from each point-to-point, so   
   then evaluating or navigating among them, is a data structure in space   
   then that's navigable. About exceptions or lies ("unknown devices"),   
   then the truth would necessarily be some boot-time parameter, or   
   otherwise ignoring them. The "tranche" was introduced as overall part of   
   "fair" algorithms, like i-cut-you-pick, shortest-straw, hot-potato,   
   "fairness and constancy". It's figured that where the things like the   
   establishment of the interrupts and masking the interrupts and servicing   
   the interrupts is from many callers that result interrupts and many   
   listeners that receive interrupts, mostly the "O(1)" is about interrupt   
   service, as that it's figured then that interrupt service (service-ing,   
   interrupt service routine) and the corresponding interrupt-mask   
   maintenance (interrupt-mask service) are co-ordinated to result that   
   according to scheduling of processes then, that interrupts relevant to   
   processes according to their scheduling, are about the   
   constant-rate/constant-time (perhaps a "large" constant) and   
   fixed-size/fixed-width (for the vectorization and as aligned) are the   
   ideas. Actors on the bus like I/O devices for example NICs or HID, it's   
   figured that they're fundamentally half-duplex both ways instead of   
   full-duplex, since the higher-level protocols define the interpretation   
   of those as about read and write. So, the kernel routine it's still   
   expected would involve scatter-gather I/O on the contents of the tx and   
   rx queues, while picking the payloads out of the packets, and as   
   according to "sliques" where for example a queue is a model of a slique,   
   then that while encountering ordered and un-ordered packets, for example   
   by the "M-ICC" as is basically private data of the originator of the   
   call in asynchronous concurrency, makes for why "M-ICC" or unique-ids   
   are a primary notion, since thusly they are the callback handle's   
   private data to keep ordering validated then to be mostly employing DMA   
   for throughput, or memory-to-memory copy.   
   Arithmetization/Algebraization/Geometrization, are general sorts of   
   abstractions about any way to model the operation of a model of a   
   finite-state-machine as according to integer arithmetic or "composite"   
   algebra or "real-valued, vector-spaced" geometrization, then that the   
   "farming" of the samples is about that there are raw samples then to be   
   refined ,as what grow according to numerical evolution, greater and   
   lesser datasets according to the coordinates of the relevant processes,   
   what are as well parameters (so to be deterministic for example about   
   the "one-shot perceptron"). The "nominally adversarial" basically   
   reflects spurious interrupts (for example from "unknown devices"), or   
   whatever conditions may so affect memory, or for example un-modeled   
   hardware failure or un-defined behavior, besides for example "malformed   
   network data" or "natural contentions of competing processes", then for   
   "fairness and constancy", which may result not a global maximum of   
   overall performance, will yet always make fairness and thus reduce   
   starvation. About P0 and P3 is mostly about the distinction between   
   "kernel-land" and "user-land" and mostly about memory protection and   
   interrupts, that user-land makes only software interrupts and cannot   
   write kernel-land memory made visible to "user-land", or mostly about   
   memory protection and interrupts, and basically hiding kernel-land   
   entry-points from user-land. The TTASL is a direct mapping among the   
   architectures of most usual instructions defining a model of   
   flow-of-control and register allocation and then that the vectorization   
   is after capabilities and reflects that "what can get vectorized, gets   
   vectorized, as much vectorization as the architecture has", thus   
   "equivalent operation" is intended, since "clock count" (or vector   
   extensions) is particular to each architecture. The trust model is   
   basically after POSIX while essentially about NIST Orange Book (and   
   "zero trust"). About samples, it's usually figured that samples are   
   always ignored, unless actively observed, then that such   
   "instrumentation of the instrumentation" adds its own load, while that   
   it's designed in the model of asynchronous concurrecy, to remain   
   correct. The notions of "standard refinements" is to be left   
   underdefined, yet it remains with the idea that quick checks and what   
   results "memoryless" "least" sampling, mostly are as for surfacing   
   exceptional conditions, and otherwise "the undercurrent" with regards to   
   "stepping in the flow".   
      
      
   Thanks RF. Let me work through these critical clarifications systematically.   
   On Timing Variance & "Large O(1)":   
   Understood - you're accepting that O(1) means "bounded" not "identical." So:   
   x86-64 AVX-512: vector_add = 3 cycles   
   ARM SVE2: vector_add = 5 cycles   
   RISC-V RVV: vector_add = 4 cycles   
   MIPS (SWAR): vector_add = 24 cycles (8×3 for 64-bit limbs)   
      
   All are O(1) because they're bounded at admin-time for that specific   
   hardware. The pre-compiled kernel for MIPS budgets 24 cycles for that   
   operation; the x86 kernel budgets 3. Both are deterministic on their   
   respective iron. The "large constant" is frozen into the Proximity Map.   
   This makes sense.   
   On Proximity Map: Lattice not DAG:   
   Critical correction noted. A lattice implies:   
      
   Partial ordering (A ≤ B if A can reach B via the interconnect)   
   Meet/join operations (find common parent in memory hierarchy)   
   Reflects physical chip layout (2D/3D spatial coordinates)   
      
   This is richer than a DAG because you can do geometric queries: "What's   
   the midpoint between Core 4 and Device 7?" becomes a lattice meet   
   operation. For NUMA-aware DMA placement, this is essential.   
   Building point-to-point DAGs from the lattice: So the lattice is the   
   static topology, and you generate ephemeral DAGs for specific routing   
   queries (e.g., "DMA path from NIC RX queue to process P's memory"). The   
   DAG is navigable in O(1) because it's just an adjacency list in a   
   pre-allocated array indexed by device ID. Elegant.   
   On Unknown Devices:   
   Boot-time parameter or ignore. So the policy is:   
   if (device.class_code not in approved_catalog):   
   if (boot_param.strict_mode):   
   panic("Unknown device, refusing to boot")   
   else:   
   log_to_catalog("Device ignored: VID=%x DID=%x", vid, did)   
   mask_interrupts_from(device)   
      
   This aligns with "nominally adversarial" - unknown = adversarial until   
   proven otherwise.   
   On Tranches & Fairness Algorithms:   
   Now I see the distinction. A tranche isn't a fixed time quantum globally   
   - it's a fairness primitive. The actual cycle budget varies per   
   operation type (large constant), but the fairness guarantee is: "Every   
   actor gets serviced within bounded time T_max."   
   The algorithms (I-cut-you-pick, straw-pulling, hot-potato) ensure:   
      
   No starvation   
   Predictable worst-case latency   
   Graceful degradation under contention   
      
   So "tranche" is more like a fairness token than a clock cycle budget.   
   The O(1) interrupt service routine might take 100 cycles on x86 vs 500   
   cycles on MIPS, but the fairness algorithm ensures both architectures   
      
   [continued in next message]   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   
|
[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]
(c) 1994, bbs@darkrealms.ca