Archive:Article of the Week: Difference between revisions

From Citizendium
Jump to navigation Jump to search
imported>Howard C. Berkowitz
imported>Alexander Wiebel
Line 20: Line 20:
|-  
|-  
| <!-- article              --> {{pl|Led Zeppelin}}
| <!-- article              --> {{pl|Led Zeppelin}}
| <!-- supporters            --> [[User:Meg Ireland|Meg Ireland]], [[User: Howard C. Berkowitz|Howard C. Berkowitz]]
| <!-- supporters            --> [[User:Meg Ireland|Meg Ireland]], [[User: Howard C. Berkowitz|Howard C. Berkowitz]], [[User:Alexander Wiebel|Alexander Wiebel]] 17:31, 14 December 2009 (UTC)
| <!-- specialist supporters -->  
| <!-- specialist supporters -->  
| <!-- score                --> 2
| <!-- score                --> 3
|-  
|-  
| <!-- article              --> {{pl|New nominee name goes here}}
| <!-- article              --> {{pl|New nominee name goes here}}

Revision as of 11:31, 14 December 2009

The Article of the Week is an article chosen by vote among Citizens as exemplifying various qualities we like to see in a Citizendium article; see our article standards. It is chosen each week by vote in a manner similar to that of its sister project, the New Draft of the Week

Add New Nominees Here

To add a new nominee or vote for an existing nominee, click edit for this section and follow the instructions

Table of Nominees
Nominated article Supporters Specialist supporters Score
Approved Article Led Zeppelin Meg Ireland, Howard C. Berkowitz, Alexander Wiebel 17:31, 14 December 2009 (UTC) 3
New nominee name goes here

Transclusion of the above nominees (to be done by an Administrator)

View Current Transcluded Nominees (after they have been transcluded by an Administrator)

The next article (or draft) of the week will be the article with the most votes at 1 AM UTC on Thursday, 5 November 2009.

Text in this section is transcluded from the respective Citizendium entries and may change when these are edited.

Nominated article Supporters Specialist supporters Score
Level3.jpg [[]]: Add brief definition or description
{{:}} ([[|Read more...]])


Current Winner (to be selected and implemented by an Administrator)

To change, click edit and follow the instructions, or see documentation at {{Featured Article}}.


Locality of reference is a commonly observed pattern in memory accesses by a computer program over time. The idea is, that memory accesses that happen close to one another in time tend to occur close to one another in space (memory address). Locality of reference is one of the primary motivations for copying data in chunks from slower memory to faster memory in the memory hierarchy. Examples are memory caches, which attempt to load a range of main memory contents at a time, and memory paging where pages of 1024 bytes or more are stored on and retrieved from harddisks in one go. Each time the assumption is made that the excess memory contents will be needed soon after.

Locality of reference can be exploited by a computer's memory controller for drastic improvements in memory access times. In general, whenever a memory access takes place, the memory controller will attempt to read a larger section of memory which contains the target address. In the common case, subsequent memory accesses will likely target memory addresses that have been loaded into the cache by that same read.

Thought experiment: fetch-execute cycle

When a typical computer is executing a program, it repeatedly reads the next instruction in memory and then executes it. Typically, those instructions are placed in sequential memory addresses, with exceptions for branches that occur for control structures such as loops, conditionals and function or method invocations.

Thought experiment: array algorithms

Suppose we had an algorithm which was to select the largest number in an array. One straight-forward way to accomplish this (indeed, the optimal solution for an unsorted flat array) is to iterate over each element of the array in order, and check whether each one is the largest so far. Thus, at time T=0, we check element 0, at T=1, we check element 1, and so on. Without a cache, the processor would need to spend a little bit of time during each instruction cycle to fetch the array element from main memory. But, if the processor employs a cache, we can achieve a speed-up as follows.

Once the algorithm attempts its first read, the processor's memory controller will fetch not just that element, but the entire cache line which contains that element. The processor must wait for that element before it can proceed, but the memory controller can continue fetching the rest while the processor moves on to the next instruction. As a result, for the next few elements we can avoid a memory stall with each array access.

Problematic access patterns

Any memory access which does not follow a linear pattern is problematic for mechanisms exploiting locality of reference. They will have spend resources to fetch more than what was immediately needed but the additional memory content fetched is now useless and the additional resources spend thus wasted.

Typically this occurs with referential data structures like linked lists if the elements are spread over memory, if index structure and content are stored together, and if the accessing algorithm is only interested in the index structure but not the indexed content. Thus traversing a linked list to find its tail or following all references in memory to detect unreachable objects for garbage collection are often very inefficient from a locality of reference point of view.

But also data structures which are typically assumed to be linear such as an array can prove problematic for locality of reference if access to them is non-linear. The typical example for this are hash tables, which are often realized as arrays. Due to the hash algorithm access to any element of that array gives basically no preference of any following access to require a neighboring element. (Read more...)

Previous Winners

Rules and Procedure

Rules

  • The article's status must be 0 or 1, i.e., only "Advanced Articles" may be nominated.
  • Any Citizen may nominate an article.
  • No Citizen may have nominated more than one article listed under "current nominees" at a time.
  • The article's nominator is indicated simply by the first name in the list of votes (see below).
  • At least for now--while the project is still small--you may nominate and vote for articles of which you are a main author.
  • An article can be Article of the Week only once every six months. Nominated articles that have won top honors should be removed from the list.
  • Comments on nominations should be made on the article's talk page.
  • The list of nominees should be kept below 20, or thereabouts. Articles with very few supporters and which have not gained any new supporters in the last two weeks or so may be deleted to make room for new nominees.
  • Any editor may entirely cancel the nomination of any unapproved article in his or her area of expertise if, for example, it contains obvious and embarrassing problems.

Voting

  • To vote, add your name and date in the Supporters column next to an article title, after other supporters for that article, by signing <br />~~~~. (The date is necessary so that we can determine when the last vote was added.) Your vote is alloted a score of 1.
  • Add your name in the Specialist supporters column only if you are an editor who is an expert about the topic in question. Your vote is alloted a score of 1 for articles which you created and a score of 2 for articles which you did not create.
  • You may vote for as many articles as you wish, and each vote counts separately, but you can only nominate one at a time; see above. You could, theoretically, vote for every nominated article on the page, but this would be pointless.

Ranking

  • The list of articles is sorted by number of votes first, then alphabetically.
  • Admins should make sure that the votes are correctly tallied, but anyone may do this. Note that "Specialist Votes" are worth 3 points.

Updating

  • Each Thursday, one of the admins listed below should move the winning article to the Current Winner section of this page, announces the winner on Citizendium-L and updates the "previous winning articles" section accordingly.
  • The winning article will be the article at the top of the list (ie the one with the most votes).
  • In the event of two or more having the same number of votes :
    • The article with the most specialist supporters is used. Should this fail to produce a winner, the article appearing first by English alphabetical order is used.
    • The remaining winning articles are guaranteed this position in the following weeks, again in alphabetical order. No further voting would take place on these, which remain at the top of the table with notices to that effect. Further nominations and voting take place to determine future winning articles for the following weeks.

Administrators

These are people who have volunteered to run this program. Their duties are (1) to ensure that this page remains "clean," e.g., as a given article garners more votes, its tally is accurately represented and it moves up the list, and (2) to place the winning article on the front page on a weekly basis. To become an administrator, you need not apply anywhere. Simply add your name below. Administrator duties are open to editors and authors alike.

References

See Also


Citizendium Initiatives
Eduzendium | Featured Article | Recruitment | Subpages | Core Articles | Uncategorized pages |
Requested Articles | Feedback Requests | Wanted Articles

|width=10% align=center style="background:#F5F5F5"|  |}