Hacker News new | past | comments | ask | show | jobs | submit login

If there are 2 processes/threads, they are parallel, if there is just one it is concurrent. For example, the event loop in JS is concurrent, offloading computation to workers is parallel.



sure but parallel comes anyway from the English word, inheriting the meaning "occurring or existing at the same time or in a similar way; corresponding.", 2 processes that exist in the same time all time are, to coin a phrase, classically parallel (by the original English usage), but two processes where they exist only part of the time at the same time are not parallel in the original meaning although they may be for CS - but the question is if there is a special technical term for this condition that anyone knows of?


> 2 processes that exist in the same time all time are, to coin a phrase, classically parallel

This is not physically realizable.

> but two processes where they exist only part of the time at the same time are not parallel in the original meaning

It doesn't, both formally and colloquially one would still refer to them as "in parallel."

---

In a very loose way you're talking about structured vs unstructured parallelism but it has nothing to do with time, and you can have parallel processes that start at the same point but do not join at the same point and it's still considered "structured."

Structured parallelism is where the distinction of where a process starts/joins is meaningful semantically, but there is not really a distinction between "these N things live for the same amount of time" and "N things have different lifetimes" in terms of vocabulary. They're all still parallel or concurrent processes.


Thanks that was helpful, I suppose when you say vocabulary and colloquially you mean this in the context of Computer Science, since I think parallel outside CS has in some ways both laxer and stricter meanings (that is to say a parallel process in colloquial English usage is something that runs for the same time)

That said I have trouble finding resources on structured and unstructured parallel processes, google just wants to tell me about structured and unstructured data, do you have some links?


I think there's a language gap here, in colloquial English saying "two things in parallel" means they happen at the same time but does not imply anything about when the events start or end. A big mistake among programmers is that "concurrent" and "parallel" are often synonyms in colloquial English while they have more formal definitions in computer science.

> That said I have trouble finding resources on structured and unstructured parallel processes

Because you're searching the wrong thing, you should be looking up sources for parallelism in the context of structured programming, specifically structured concurrency. Googling for "structured concurrency" "structured parallel programming" has plenty of results. In multithreaded code the data structure is sometimes called a "scoped thread."

To be perfectly clear: structured concurrency/scoped threads do not require that the start/end of tasks are equal. They only allow you to rely on the semantics of them starting/ending when structuring a program, which may include that constraint, but does not explicitly refer to it.


thanks!


Are you really trying to learn something here? Because it seems you can't accept that you are thinking it wrongly and it has no back in CS (or outside). Google doesn't just want to tell you about structured and unstructured data, what you are looking for doesn't exist. Parallelism (in CS or outside of it) doesn't mean things start and end at the same time just that they happen in PARALLEL. That's really not such a difficult concept to grasp but you need to have some humility to just say: oops, I might have a wrong understanding and might need to fix it. This is healthy and make people smarter.


probably I should just drop it but

>Are you really trying to learn something here?

sure, which is why when user "duped" said

>>In a very loose way you're talking about structured vs unstructured parallelism

I replied

>>That said I have trouble finding resources on structured and unstructured parallel processes, google just wants to tell me about structured and unstructured data, do you have some links?

As I assumed the structured and unstructured was referring to parallel processes - I can find "Structured vs Unstructured concurrency" but that of course goes back to the top level discussion that concurrency and parallelism are not exactly the same.

>what you are looking for doesn't exist.

OK, because someone other than you, unless you are using two accounts somewhat suggested that it did exist. That being the user named "duped" that I was replying to and whose terms I used in my question. If you are "duped" (short for duplicated?) then why did you imply these concepts did exist in your earlier message?

>Parallelism (in CS or outside of it) doesn't mean things start and end at the same time just that they happen in PARALLEL.

Sorry, but the definition of Parallel "outside" of CS - when dealing with time - is "occurring or existing at the same time or in a similar way; corresponding."

>That's really not such a difficult concept to grasp but you need to have some humility to just say: oops, I might have a wrong understanding and might need to fix it. This is healthy and make people smarter.

OK, but I am pretty used to standard English usage and my understanding is that vernacular usage of parallel - when referring to time - is that they start and end at the same time (which is also how I would define "happens at the same time", evidently you have a different definition of that though), whether or not your or my definition is right it seems to me that my definition lines up with the Oxford Language dictionary definition I quoted above.

However given that two lines can be parallel even if they do not have the same length perhaps I am too literal in my time parallel usage - though every usage for time parallel I have ever seen seems to imply running over the same time-span is the meaning.

on edit: changed distance to length as distance is meaningful in relation to parallel lines.


> OK, but I am pretty used to standard English usage and my understanding is that vernacular usage of parallel - when referring to time - is that they start and end at the same time

So what happens if one task is simpler and ends earlier? it needs to continue running to be parallel and wait for the other task to end together? Maybe I'm in the wrong here and would love to understand it but for me it doesn't make sense (English isn't my native language tho).


After discussing it on English stackexchange https://english.stackexchange.com/questions/625990/meaning-o... I have to conclude that my definition is probably too strict (based on other people's opinions as language is a shared construct) although I still think maybe I just noticed something about the usage that other people haven't - that is to say my natural feeling of usage in English is that parallel things start and end at the same time (on same time scale - not assuming millisecond accuracy here) otherwise if not we would say that the first reign of Napoleon and the Presidency of Thomas Jefferson were in parallel to each other which to me at least seems absurd - they overlapped each other or were contemporaneous - but not parallel.

This however just seems to be my own feeling that nobody else shares, which I find strange, I guess it's one of those how do I know the color orange is the same for you as it is for me things - only in this case it turns out the color orange totally isn't the same for the two of us.


when I say start and end at the same time this of course refers to the time scale used, for example if I am talking years and say Mr. Adams started his project in 1920 and finished in 1928 and then later I say Mr. Bronder worked on his project in parallel to Mr. Adams I would expect that meant Mr. Bronder started his project in 1920 and finished in 1928 - not that they started the exact same minute - because the time scale used is in years.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: