"Thread" in 2009 = "logical core" in 2015, shared with "task"

Non-technical related questions should go here.
User avatar
aclassifier
XCore Expert
Posts: 516
Joined: Wed Apr 25, 2012 8:52 pm

"Thread" in 2009 = "logical core" in 2015, shared with "task"

Post by aclassifier »

Hi there,

Did XMOS change the 2009 terms "threads" and "virtual processors" [1] for 2015 versions like "logical cores" [2] after they discovered that Lee already in 2006 [3] had made "threads" look rather stupid? The only reference to "logical" in May's book is on p180: "Sets the logical network over which a channel should communicate." The programming guide from 2015 is almost fully rid of "thread" (3 times) but "logical cores" is used all over the 108 page document. Also, in May's 2009 book "thread" is also used to mean what in 2015 was called "task". Maybe the 2015 book only clarified the terms better, with no influence from Lee?

Plus, is the 2015 naming still used during the development of the X4?

[1] The XMOS XS1 Architecture by David May. Copyright © 2009 by XMOS Limited. ISBN: 978-1-907361-01-2 (PBK), ISBN: 978-1-907361-04-3 Published by XMOS Limited, see https://www.xmos.com/download/public/Th ... re_1.0.pdf. This is a very detailed book of 261 pages!

[2] XMOS Programming Guide (as of 17Jan2018: 2015/9/21 version F, 2015/9/18 in the document), see https://www.xmos.com/file/xmos-programming-guide

[3] The Problem with Threads, Edward A. Lee (2006) https://www2.eecs.berkeley.edu/Pubs/Tec ... 006-1.html
Off Topic
I discovered this when writing up this thread of thoughts, in a blog note: https://www.teigfam.net/oyvind/home/tec ... xmos_xcore
--
Øyvind Teig
Trondheim (Norway)
https://www.teigfam.net/oyvind/home/
User avatar
Ross
Verified
XCore Legend
Posts: 1273
Joined: Thu Dec 10, 2009 9:20 pm
Location: Bristol, UK

Post by Ross »

As far as I remember, there was a change from "thread" to "logical core" due the prevalence of multi-core as a term at the time, nothing to so with a paper you reference and wasn't a decision based on technology or engineering. This was after David May's tenure as CTO.

There is a move now back to "thread" or "hart" (hardware thread), thankfully.

Task is a more generic term - more than one task can run on a thread, for example.

(All IMO and from an fuzzy memory - see my sig)
Technical Director @ XMOS. Opinions expressed are my own
User avatar
aclassifier
XCore Expert
Posts: 516
Joined: Wed Apr 25, 2012 8:52 pm

Post by aclassifier »

Thanks a lot, Ross!

Fuzzy memory + opinion = great!

Ø
--
Øyvind Teig
Trondheim (Norway)
https://www.teigfam.net/oyvind/home/
User avatar
aclassifier
XCore Expert
Posts: 516
Joined: Wed Apr 25, 2012 8:52 pm

Post by aclassifier »

Ross wrote: Tue Sep 23, 2025 11:12 am Task is a more generic term - more than one task can run on a thread, for example.
Am I dreaming, ..
are the likes of [[combine]], [[combinable]], [[distribute]], [[distributable]] and [[distributed(..)]] on their way back..?

They should! (Disclaimer: if they have already appeared in lib_xcore I'd certainly like to know!)

Ø
--
Øyvind Teig
Trondheim (Norway)
https://www.teigfam.net/oyvind/home/
User avatar
Ross
Verified
XCore Legend
Posts: 1273
Joined: Thu Dec 10, 2009 9:20 pm
Location: Bristol, UK

Post by Ross »

As XMOS move away from XC it's unclear if these terms would survive, however, what is clear is that the functionality that these keywords represent is fundamental to the XMOS technology and shall remain. The question is how to provide such functionality in a language such as C, this is an active area of work. Until then, XC will be used for these items.
Technical Director @ XMOS. Opinions expressed are my own
User avatar
aclassifier
XCore Expert
Posts: 516
Joined: Wed Apr 25, 2012 8:52 pm

Post by aclassifier »

This is good news! Thank you!
--
Øyvind Teig
Trondheim (Norway)
https://www.teigfam.net/oyvind/home/